home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 15 / BBS in a box XV-1.iso / Files / Game / C / Cheese Toast 1.01.sit / CheeseToast ƒ / Source / Sprites.c < prev    next >
MacBinary  |  1994-03-10  |  22.0 KB  |  [TEXT/KAHL]

open in: MacOS 8.1     |     Win98     |     DOS

view JSON data     |     view as text

This file was processed as: MacBinary (archive/macBinary).

You can browse this item here: Sprites.c

ConfidenceProgramDetectionMatch TypeSupport
66% dexvert Compact Compressed (Unix) (archive/compact) ext Supported
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Thu Mar 10 09:58:43 1994, modified Thu Mar 10 09:58:43 1994, creator Think C, type ASCII, 21791 bytes "Sprites.c" , at 0x559f 402 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[KAHL]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 09 53 70 72 69 74 65 | 73 2e 63 00 00 00 00 00 |..Sprite|s.c.....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4b 41 48 | 4c 01 00 00 00 00 00 00 |.TEXTKAH|L.......|
|00000050| 00 00 00 00 00 55 1f 00 | 00 01 92 a9 a4 e6 23 a9 |.....U..|......#.|
|00000060| a4 e6 23 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |..#.....|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 8c 2e 00 00 |........|........|
|00000080| 2f 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |/*******|********|
|00000090| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000a0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000b0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|000000c0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 0d 20 2a |********|*****. *|
|000000d0| 20 53 70 72 69 74 65 73 | 2e 63 0d 20 2a 0d 20 2a | Sprites|.c. *. *|
|000000e0| 09 09 53 70 72 69 74 65 | 20 4d 61 69 6e 74 65 6e |..Sprite| Mainten|
|000000f0| 65 6e 63 65 2c 20 4c 6f | 67 69 63 2c 20 41 6e 69 |ence, Lo|gic, Ani|
|00000100| 6d 61 74 69 6f 6e 0d 20 | 2a 0d 20 2a 09 09 4d 6f |mation. |*. *..Mo|
|00000110| 73 74 20 6f 66 20 47 61 | 6d 65 20 4c 6f 67 69 63 |st of Ga|me Logic|
|00000120| 20 69 73 20 68 65 72 65 | 2e 2e 2e 0d 20 2a 0d 20 | is here|.... *. |
|00000130| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000140| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000150| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000160| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000170| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2f 0d 23 69 |********|****/.#i|
|00000180| 6e 63 6c 75 64 65 20 22 | 43 54 6f 61 73 74 2e 68 |nclude "|CToast.h|
|00000190| 22 0d 23 69 6e 63 6c 75 | 64 65 20 3c 73 74 64 6c |".#inclu|de <stdl|
|000001a0| 69 62 2e 68 3e 0d 23 69 | 6e 63 6c 75 64 65 20 3c |ib.h>.#i|nclude <|
|000001b0| 6d 61 74 68 2e 68 3e 0d | 0d 23 69 66 20 5f 5f 6f |math.h>.|.#if __o|
|000001c0| 70 74 69 6f 6e 28 70 72 | 6f 66 69 6c 65 29 09 09 |ption(pr|ofile)..|
|000001d0| 09 09 09 2f 2f 20 36 2f | 31 35 20 4f 70 74 69 6f |...// 6/|15 Optio|
|000001e0| 6e 61 6c 20 70 72 6f 66 | 69 6c 69 6e 67 20 73 75 |nal prof|iling su|
|000001f0| 70 70 6f 72 74 0d 23 69 | 6e 63 6c 75 64 65 20 3c |pport.#i|nclude <|
|00000200| 50 72 6f 66 69 6c 65 2e | 68 3e 0d 23 65 6e 64 69 |Profile.|h>.#endi|
|00000210| 66 0d 0d 0d 2f 2f 20 53 | 70 72 69 74 65 73 20 49 |f...// S|prites I|
|00000220| 6e 69 74 69 61 6c 69 7a | 61 74 69 6f 6e 20 46 75 |nitializ|ation Fu|
|00000230| 6e 63 74 69 6f 6e 73 0d | 0d 76 6f 69 64 20 4e 65 |nctions.|.void Ne|
|00000240| 77 53 61 76 65 4d 61 70 | 28 53 70 72 69 74 65 49 |wSaveMap|(SpriteI|
|00000250| 6e 73 74 61 6e 63 65 20 | 2a 73 70 29 0d 7b 0d 09 |nstance |*sp).{..|
|00000260| 73 68 6f 72 74 09 6e 3b | 0d 09 69 66 20 28 67 4e |short.n;|..if (gN|
|00000270| 62 72 53 61 76 65 4d 61 | 70 73 20 3d 3d 20 4d 61 |brSaveMa|ps == Ma|
|00000280| 78 53 61 76 65 4d 61 70 | 73 20 2d 20 31 29 20 7b |xSaveMap|s - 1) {|
|00000290| 0d 09 09 44 65 62 75 67 | 53 74 72 28 22 5c 70 4d |...Debug|Str("\pM|
|000002a0| 61 78 20 53 61 76 65 20 | 4d 61 70 73 22 29 3b 0d |ax Save |Maps");.|
|000002b0| 09 09 72 65 74 75 72 6e | 3b 0d 09 7d 0d 09 6e 20 |..return|;..}..n |
|000002c0| 3d 20 67 4e 62 72 53 61 | 76 65 4d 61 70 73 3b 0d |= gNbrSa|veMaps;.|
|000002d0| 09 67 4e 62 72 53 61 76 | 65 4d 61 70 73 2b 2b 3b |.gNbrSav|eMaps++;|
|000002e0| 0d 09 73 6d 54 61 62 6c | 65 5b 6e 5d 2e 61 63 74 |..smTabl|e[n].act|
|000002f0| 69 76 65 20 3d 20 74 72 | 75 65 3b 0d 09 73 6d 54 |ive = tr|ue;..smT|
|00000300| 61 62 6c 65 5b 6e 5d 2e | 73 70 20 3d 20 73 70 3b |able[n].|sp = sp;|
|00000310| 0d 09 2f 2f 20 73 70 2d | 3e 73 61 76 65 4d 61 70 |..// sp-|>saveMap|
|00000320| 49 64 78 20 3d 20 6e 3b | 0d 09 73 70 2d 3e 73 61 |Idx = n;|..sp->sa|
|00000330| 76 65 4d 61 70 50 74 72 | 20 3d 20 26 73 6d 54 61 |veMapPtr| = &smTa|
|00000340| 62 6c 65 5b 6e 5d 3b 0d | 7d 0d 0d 76 6f 69 64 20 |ble[n];.|}..void |
|00000350| 4b 69 6c 6c 53 61 76 65 | 4d 61 70 28 53 61 76 65 |KillSave|Map(Save|
|00000360| 4d 61 70 50 74 72 20 73 | 6d 29 0d 7b 0d 09 73 6d |MapPtr s|m).{..sm|
|00000370| 2d 3e 61 63 74 69 76 65 | 20 3d 20 66 61 6c 73 65 |->active| = false|
|00000380| 3b 0d 09 73 6d 2d 3e 73 | 70 20 3d 20 4e 55 4c 4c |;..sm->s|p = NULL|
|00000390| 3b 0d 09 77 68 69 6c 65 | 20 28 67 4e 62 72 53 61 |;..while| (gNbrSa|
|000003a0| 76 65 4d 61 70 73 20 3e | 20 30 20 26 26 20 21 73 |veMaps >| 0 && !s|
|000003b0| 6d 54 61 62 6c 65 5b 67 | 4e 62 72 53 61 76 65 4d |mTable[g|NbrSaveM|
|000003c0| 61 70 73 2d 31 5d 2e 61 | 63 74 69 76 65 29 0d 09 |aps-1].a|ctive)..|
|000003d0| 09 2d 2d 67 4e 62 72 53 | 61 76 65 4d 61 70 73 3b |.--gNbrS|aveMaps;|
|000003e0| 0d 7d 0d 0d 53 70 72 69 | 74 65 49 6e 73 74 61 6e |.}..Spri|teInstan|
|000003f0| 63 65 20 2a 4e 65 77 53 | 70 72 69 74 65 28 42 6f |ce *NewS|prite(Bo|
|00000400| 6f 6c 65 61 6e 20 73 61 | 76 65 4d 61 70 46 6c 61 |olean sa|veMapFla|
|00000410| 67 29 0d 7b 0d 09 73 68 | 6f 72 74 09 09 09 69 3b |g).{..sh|ort...i;|
|00000420| 0d 09 53 70 72 69 74 65 | 49 6e 73 74 61 6e 63 65 |..Sprite|Instance|
|00000430| 20 2a 73 70 3b 0d 09 69 | 66 20 28 67 4d 61 78 53 | *sp;..i|f (gMaxS|
|00000440| 70 72 69 74 65 20 3d 3d | 20 4d 61 78 53 70 72 69 |prite ==| MaxSpri|
|00000450| 74 65 73 20 2d 20 31 29 | 20 7b 0d 09 09 44 65 62 |tes - 1)| {...Deb|
|00000460| 75 67 53 74 72 28 22 5c | 70 4d 61 78 20 53 70 72 |ugStr("\|pMax Spr|
|00000470| 69 74 65 73 22 29 3b 0d | 09 09 72 65 74 75 72 6e |ites");.|..return|
|00000480| 20 4e 55 4c 4c 3b 0d 09 | 7d 0d 09 73 70 20 3d 20 | NULL;..|}..sp = |
|00000490| 26 73 54 61 62 6c 65 5b | 67 4d 61 78 53 70 72 69 |&sTable[|gMaxSpri|
|000004a0| 74 65 2b 2b 5d 3b 0d 09 | 73 70 2d 3e 61 63 74 69 |te++];..|sp->acti|
|000004b0| 76 65 20 3d 20 74 72 75 | 65 3b 0d 09 69 66 20 28 |ve = tru|e;..if (|
|000004c0| 73 61 76 65 4d 61 70 46 | 6c 61 67 29 0d 09 09 4e |saveMapF|lag)...N|
|000004d0| 65 77 53 61 76 65 4d 61 | 70 28 73 70 29 3b 0d 09 |ewSaveMa|p(sp);..|
|000004e0| 65 6c 73 65 0d 09 09 73 | 70 2d 3e 73 61 76 65 4d |else...s|p->saveM|
|000004f0| 61 70 50 74 72 20 3d 20 | 4e 55 4c 4c 3b 0d 09 2b |apPtr = |NULL;..+|
|00000500| 2b 67 53 70 72 69 74 65 | 43 6e 74 3b 0d 09 72 65 |+gSprite|Cnt;..re|
|00000510| 74 75 72 6e 20 73 70 3b | 0d 7d 0d 0d 76 6f 69 64 |turn sp;|.}..void|
|00000520| 20 4b 69 6c 6c 53 70 72 | 69 74 65 28 53 70 72 69 | KillSpr|ite(Spri|
|00000530| 74 65 49 6e 73 74 61 6e | 63 65 20 2a 73 70 29 0d |teInstan|ce *sp).|
|00000540| 7b 0d 09 73 70 2d 3e 61 | 63 74 69 76 65 20 3d 20 |{..sp->a|ctive = |
|00000550| 30 3b 0d 09 69 66 20 28 | 73 70 2d 3e 73 61 76 65 |0;..if (|sp->save|
|00000560| 4d 61 70 50 74 72 29 20 | 7b 0d 09 09 4b 69 6c 6c |MapPtr) |{...Kill|
|00000570| 53 61 76 65 4d 61 70 28 | 73 70 2d 3e 73 61 76 65 |SaveMap(|sp->save|
|00000580| 4d 61 70 50 74 72 29 3b | 0d 09 09 2f 2f 20 73 70 |MapPtr);|...// sp|
|00000590| 2d 3e 73 61 76 65 4d 61 | 70 50 74 72 20 3d 20 4e |->saveMa|pPtr = N|
|000005a0| 55 4c 4c 3b 09 2f 2f 20 | 44 6f 6e 27 74 20 6b 69 |ULL;.// |Don't ki|
|000005b0| 6c 6c 20 2d 20 77 65 20 | 73 74 69 6c 6c 20 68 61 |ll - we |still ha|
|000005c0| 76 65 20 74 6f 20 75 70 | 64 61 74 65 20 73 70 72 |ve to up|date spr|
|000005d0| 69 74 65 0d 09 7d 0d 09 | 2d 2d 67 53 70 72 69 74 |ite..}..|--gSprit|
|000005e0| 65 43 6e 74 3b 0d 09 77 | 68 69 6c 65 20 28 67 4d |eCnt;..w|hile (gM|
|000005f0| 61 78 53 70 72 69 74 65 | 20 3e 20 30 20 26 26 20 |axSprite| > 0 && |
|00000600| 21 73 54 61 62 6c 65 5b | 67 4d 61 78 53 70 72 69 |!sTable[|gMaxSpri|
|00000610| 74 65 2d 31 5d 2e 61 63 | 74 69 76 65 20 26 26 20 |te-1].ac|tive && |
|00000620| 21 73 54 61 62 6c 65 5b | 67 4d 61 78 53 70 72 69 |!sTable[|gMaxSpri|
|00000630| 74 65 2d 31 5d 2e 75 70 | 64 61 74 65 29 0d 09 09 |te-1].up|date)...|
|00000640| 2d 2d 67 4d 61 78 53 70 | 72 69 74 65 3b 0d 7d 0d |--gMaxSp|rite;.}.|
|00000650| 0d 76 6f 69 64 20 4e 65 | 77 41 73 74 65 72 6f 69 |.void Ne|wAsteroi|
|00000660| 64 28 73 68 6f 72 74 20 | 74 79 70 65 29 0d 7b 0d |d(short |type).{.|
|00000670| 09 72 65 67 69 73 74 65 | 72 20 73 68 6f 72 74 09 |.registe|r short.|
|00000680| 76 65 63 53 70 65 65 64 | 3b 0d 09 72 65 67 69 73 |vecSpeed|;..regis|
|00000690| 74 65 72 20 53 70 72 69 | 74 65 49 6e 73 74 61 6e |ter Spri|teInstan|
|000006a0| 63 65 20 2a 73 70 3b 0d | 09 69 66 20 28 28 73 70 |ce *sp;.|.if ((sp|
|000006b0| 20 3d 20 4e 65 77 53 70 | 72 69 74 65 28 74 72 75 | = NewSp|rite(tru|
|000006c0| 65 29 29 20 3d 3d 20 4e | 55 4c 4c 29 0d 09 09 72 |e)) == N|ULL)...r|
|000006d0| 65 74 75 72 6e 3b 0d 09 | 69 66 20 28 4d 79 52 61 |eturn;..|if (MyRa|
|000006e0| 6e 64 6f 6d 28 35 30 29 | 20 3d 3d 20 30 29 0d 09 |ndom(50)| == 0)..|
|000006f0| 09 74 79 70 65 20 3d 20 | 53 54 5f 4a 69 6d 3b 0d |.type = |ST_Jim;.|
|00000700| 09 73 70 2d 3e 74 79 70 | 65 20 3d 20 74 79 70 65 |.sp->typ|e = type|
|00000710| 3b 0d 09 73 70 2d 3e 70 | 61 72 61 6d 31 20 3d 20 |;..sp->p|aram1 = |
|00000720| 30 3b 0d 09 73 70 2d 3e | 61 6e 69 53 74 61 74 65 |0;..sp->|aniState|
|00000730| 20 3d 20 4d 79 52 61 6e | 64 6f 6d 28 73 44 65 66 | = MyRan|dom(sDef|
|00000740| 5b 73 70 2d 3e 74 79 70 | 65 5d 2e 6e 62 72 49 63 |[sp->typ|e].nbrIc|
|00000750| 6f 6e 73 29 3b 0d 09 69 | 66 20 28 4d 79 52 61 6e |ons);..i|f (MyRan|
|00000760| 64 6f 6d 28 32 29 20 3d | 3d 20 30 29 20 7b 0d 09 |dom(2) =|= 0) {..|
|00000770| 09 73 70 2d 3e 70 6f 73 | 2e 68 20 3d 20 30 3b 0d |.sp->pos|.h = 0;.|
|00000780| 09 09 73 70 2d 3e 70 6f | 73 2e 76 20 3d 20 4d 79 |..sp->po|s.v = My|
|00000790| 52 61 6e 64 6f 6d 28 67 | 50 6c 61 79 52 65 63 74 |Random(g|PlayRect|
|000007a0| 2e 62 6f 74 74 6f 6d 29 | 3b 0d 09 7d 0d 09 65 6c |.bottom)|;..}..el|
|000007b0| 73 65 20 7b 0d 09 09 73 | 70 2d 3e 70 6f 73 2e 68 |se {...s|p->pos.h|
|000007c0| 20 3d 20 4d 79 52 61 6e | 64 6f 6d 28 67 50 6c 61 | = MyRan|dom(gPla|
|000007d0| 79 52 65 63 74 2e 72 69 | 67 68 74 29 3b 0d 09 09 |yRect.ri|ght);...|
|000007e0| 73 70 2d 3e 70 6f 73 2e | 76 20 3d 20 30 3b 0d 09 |sp->pos.|v = 0;..|
|000007f0| 7d 0d 09 73 70 2d 3e 6f | 6c 64 50 6f 73 20 3d 20 |}..sp->o|ldPos = |
|00000800| 73 70 2d 3e 70 6f 73 3b | 0d 09 2f 2f 20 50 69 63 |sp->pos;|..// Pic|
|00000810| 6b 20 61 6e 79 20 61 6e | 67 6c 65 20 65 78 63 65 |k any an|gle exce|
|00000820| 70 74 20 30 2c 34 2c 38 | 2c 31 32 20 28 77 68 69 |pt 0,4,8|,12 (whi|
|00000830| 63 68 20 61 72 65 20 73 | 74 72 61 69 67 68 74 29 |ch are s|traight)|
|00000840| 0d 09 2f 2f 20 61 6e 64 | 20 6d 61 79 20 63 61 75 |..// and| may cau|
|00000850| 73 65 20 61 73 74 65 72 | 6f 69 64 20 74 6f 20 62 |se aster|oid to b|
|00000860| 65 20 69 6e 76 69 73 69 | 62 6c 65 20 6f 6e 20 73 |e invisi|ble on s|
|00000870| 69 64 65 73 0d 09 73 70 | 2d 3e 61 6e 67 6c 65 20 |ides..sp|->angle |
|00000880| 3d 20 4d 79 52 61 6e 64 | 6f 6d 28 4d 61 78 41 6e |= MyRand|om(MaxAn|
|00000890| 67 6c 65 73 2d 34 29 3b | 0d 09 73 70 2d 3e 61 6e |gles-4);|..sp->an|
|000008a0| 67 6c 65 20 2b 3d 20 31 | 2b 28 73 70 2d 3e 61 6e |gle += 1|+(sp->an|
|000008b0| 67 6c 65 2f 37 29 3b 0d | 09 76 65 63 53 70 65 65 |gle/7);.|.vecSpee|
|000008c0| 64 20 3d 20 4d 79 52 61 | 6e 64 6f 6d 28 33 29 2b |d = MyRa|ndom(3)+|
|000008d0| 32 2b 4d 79 52 61 6e 64 | 6f 6d 28 67 47 61 6d 65 |2+MyRand|om(gGame|
|000008e0| 4c 65 76 65 6c 29 3b 0d | 09 73 70 2d 3e 76 65 63 |Level);.|.sp->vec|
|000008f0| 74 6f 72 2e 6c 68 20 3d | 20 76 65 63 54 61 62 6c |tor.lh =| vecTabl|
|00000900| 65 5b 73 70 2d 3e 61 6e | 67 6c 65 5d 2e 6c 68 20 |e[sp->an|gle].lh |
|00000910| 2a 20 76 65 63 53 70 65 | 65 64 3b 0d 09 73 70 2d |* vecSpe|ed;..sp-|
|00000920| 3e 76 65 63 74 6f 72 2e | 6c 76 20 3d 20 76 65 63 |>vector.|lv = vec|
|00000930| 54 61 62 6c 65 5b 73 70 | 2d 3e 61 6e 67 6c 65 5d |Table[sp|->angle]|
|00000940| 2e 6c 76 20 2a 20 76 65 | 63 53 70 65 65 64 3b 0d |.lv * ve|cSpeed;.|
|00000950| 09 69 66 20 28 6c 61 62 | 73 28 73 70 2d 3e 76 65 |.if (lab|s(sp->ve|
|00000960| 63 74 6f 72 2e 6c 68 29 | 20 3c 20 30 78 30 30 30 |ctor.lh)| < 0x000|
|00000970| 31 30 30 30 30 29 0d 09 | 09 73 70 2d 3e 76 65 63 |10000)..|.sp->vec|
|00000980| 74 6f 72 2e 6c 68 20 3d | 20 30 78 30 30 30 31 30 |tor.lh =| 0x00010|
|00000990| 30 30 30 3b 0d 09 69 66 | 20 28 6c 61 62 73 28 73 |000;..if| (labs(s|
|000009a0| 70 2d 3e 76 65 63 74 6f | 72 2e 6c 76 29 20 3c 20 |p->vecto|r.lv) < |
|000009b0| 30 78 30 30 30 31 30 30 | 30 30 29 0d 09 09 73 70 |0x000100|00)...sp|
|000009c0| 2d 3e 76 65 63 74 6f 72 | 2e 6c 76 20 3d 20 30 78 |->vector|.lv = 0x|
|000009d0| 30 30 30 31 30 30 30 30 | 3b 0d 09 73 70 2d 3e 61 |00010000|;..sp->a|
|000009e0| 6e 69 53 70 65 65 64 20 | 3d 20 31 20 2b 20 4d 79 |niSpeed |= 1 + My|
|000009f0| 52 61 6e 64 6f 6d 28 32 | 29 3b 0d 09 73 70 2d 3e |Random(2|);..sp->|
|00000a00| 74 69 63 6b 43 74 72 20 | 3d 20 4d 79 52 61 6e 64 |tickCtr |= MyRand|
|00000a10| 6f 6d 28 73 70 2d 3e 61 | 6e 69 53 70 65 65 64 29 |om(sp->a|niSpeed)|
|00000a20| 3b 0d 09 73 70 2d 3e 77 | 69 64 74 68 20 3d 20 33 |;..sp->w|idth = 3|
|00000a30| 32 3b 0d 09 2b 2b 67 41 | 73 74 65 72 6f 69 64 43 |2;..++gA|steroidC|
|00000a40| 6e 74 3b 0d 7d 0d 0d 23 | 69 66 20 44 45 42 55 47 |nt;.}..#|if DEBUG|
|00000a50| 47 49 4e 47 0d 2f 2f 20 | 54 68 69 73 20 70 75 74 |GING.// |This put|
|00000a60| 73 20 74 77 6f 20 73 70 | 65 63 69 61 6c 20 73 70 |s two sp|ecial sp|
|00000a70| 72 69 74 65 73 20 69 6e | 20 74 68 65 20 6c 6f 77 |rites in| the low|
|00000a80| 65 72 20 6c 65 66 74 20 | 68 61 6e 64 20 63 6f 72 |er left |hand cor|
|00000a90| 6e 65 72 20 6f 66 20 74 | 68 65 20 73 63 72 65 65 |ner of t|he scree|
|00000aa0| 6e 0d 2f 2f 20 77 68 69 | 63 68 20 61 72 65 20 75 |n.// whi|ch are u|
|00000ab0| 73 65 64 20 74 6f 20 6d | 6f 6e 69 74 6f 72 20 73 |sed to m|onitor s|
|00000ac0| 70 72 69 74 65 20 6d 65 | 6d 6f 72 79 0d 2f 2f 0d |prite me|mory.//.|
|00000ad0| 76 6f 69 64 20 4e 65 77 | 44 65 62 75 67 44 69 73 |void New|DebugDis|
|00000ae0| 70 6c 61 79 28 76 6f 69 | 64 29 0d 7b 0d 09 72 65 |play(voi|d).{..re|
|00000af0| 67 69 73 74 65 72 20 53 | 70 72 69 74 65 49 6e 73 |gister S|priteIns|
|00000b00| 74 61 6e 63 65 20 2a 73 | 70 3b 0d 09 69 66 20 28 |tance *s|p;..if (|
|00000b10| 28 73 70 20 3d 20 4e 65 | 77 53 70 72 69 74 65 28 |(sp = Ne|wSprite(|
|00000b20| 66 61 6c 73 65 29 29 20 | 3d 3d 20 4e 55 4c 4c 29 |false)) |== NULL)|
|00000b30| 0d 09 09 72 65 74 75 72 | 6e 3b 0d 09 73 70 2d 3e |...retur|n;..sp->|
|00000b40| 74 79 70 65 20 3d 20 53 | 54 5f 53 70 72 69 74 65 |type = S|T_Sprite|
|00000b50| 43 6e 74 3b 0d 09 73 70 | 2d 3e 70 61 72 61 6d 31 |Cnt;..sp|->param1|
|00000b60| 20 3d 20 30 3b 0d 09 73 | 70 2d 3e 70 6f 73 2e 68 | = 0;..s|p->pos.h|
|00000b70| 20 3d 20 34 30 3b 0d 09 | 73 70 2d 3e 70 6f 73 2e | = 40;..|sp->pos.|
|00000b80| 76 20 3d 20 34 38 30 2b | 33 32 3b 0d 09 73 70 2d |v = 480+|32;..sp-|
|00000b90| 3e 6f 6c 64 50 6f 73 20 | 3d 20 73 70 2d 3e 70 6f |>oldPos |= sp->po|
|00000ba0| 73 3b 0d 09 73 70 2d 3e | 77 69 64 74 68 20 3d 20 |s;..sp->|width = |
|00000bb0| 32 3b 0d 0d 09 69 66 20 | 28 28 73 70 20 3d 20 4e |2;...if |((sp = N|
|00000bc0| 65 77 53 70 72 69 74 65 | 28 66 61 6c 73 65 29 29 |ewSprite|(false))|
|00000bd0| 20 3d 3d 20 4e 55 4c 4c | 29 0d 09 09 72 65 74 75 | == NULL|)...retu|
|00000be0| 72 6e 3b 0d 09 73 70 2d | 3e 74 79 70 65 20 3d 20 |rn;..sp-|>type = |
|00000bf0| 53 54 5f 4d 61 78 53 70 | 72 69 74 65 3b 0d 09 73 |ST_MaxSp|rite;..s|
|00000c00| 70 2d 3e 70 61 72 61 6d | 31 20 3d 20 30 3b 0d 09 |p->param|1 = 0;..|
|00000c10| 73 70 2d 3e 70 6f 73 2e | 68 20 3d 20 33 32 3b 0d |sp->pos.|h = 32;.|
|00000c20| 09 73 70 2d 3e 70 6f 73 | 2e 76 20 3d 20 34 38 30 |.sp->pos|.v = 480|
|00000c30| 2b 33 32 3b 0d 09 73 70 | 2d 3e 6f 6c 64 50 6f 73 |+32;..sp|->oldPos|
|00000c40| 20 3d 20 73 70 2d 3e 70 | 6f 73 3b 0d 09 73 70 2d | = sp->p|os;..sp-|
|00000c50| 3e 77 69 64 74 68 20 3d | 20 32 3b 0d 7d 0d 23 65 |>width =| 2;.}.#e|
|00000c60| 6e 64 69 66 0d 0d 76 6f | 69 64 20 4e 65 77 53 75 |ndif..vo|id NewSu|
|00000c70| 62 41 73 74 65 72 6f 69 | 64 28 73 68 6f 72 74 20 |bAsteroi|d(short |
|00000c80| 70 61 72 65 6e 74 2c 20 | 73 68 6f 72 74 20 74 79 |parent, |short ty|
|00000c90| 70 65 2c 20 73 68 6f 72 | 74 20 76 65 63 4f 66 66 |pe, shor|t vecOff|
|00000ca0| 73 65 74 29 0d 7b 0d 09 | 72 65 67 69 73 74 65 72 |set).{..|register|
|00000cb0| 20 73 68 6f 72 74 20 76 | 65 63 53 70 65 65 64 3b | short v|ecSpeed;|
|00000cc0| 0d 09 72 65 67 69 73 74 | 65 72 20 53 70 72 69 74 |..regist|er Sprit|
|00000cd0| 65 49 6e 73 74 61 6e 63 | 65 20 2a 73 70 2c 2a 70 |eInstanc|e *sp,*p|
|00000ce0| 61 72 3b 0d 09 69 66 20 | 28 28 73 70 20 3d 20 4e |ar;..if |((sp = N|
|00000cf0| 65 77 53 70 72 69 74 65 | 28 74 72 75 65 29 29 20 |ewSprite|(true)) |
|00000d00| 3d 3d 20 4e 55 4c 4c 29 | 0d 09 09 72 65 74 75 72 |== NULL)|...retur|
|00000d10| 6e 3b 0d 09 70 61 72 20 | 3d 20 26 73 54 61 62 6c |n;..par |= &sTabl|
|00000d20| 65 5b 70 61 72 65 6e 74 | 5d 3b 0d 09 73 70 2d 3e |e[parent|];..sp->|
|00000d30| 70 6f 73 20 3d 20 70 61 | 72 2d 3e 70 6f 73 3b 0d |pos = pa|r->pos;.|
|00000d40| 09 73 70 2d 3e 6f 6c 64 | 50 6f 73 20 3d 20 70 61 |.sp->old|Pos = pa|
|00000d50| 72 2d 3e 6f 6c 64 50 6f | 73 3b 0d 09 73 70 2d 3e |r->oldPo|s;..sp->|
|00000d60| 70 61 72 61 6d 31 20 3d | 20 70 61 72 2d 3e 70 61 |param1 =| par->pa|
|00000d70| 72 61 6d 31 3b 0d 09 73 | 70 2d 3e 70 61 72 61 6d |ram1;..s|p->param|
|00000d80| 32 20 3d 20 70 61 72 2d | 3e 70 61 72 61 6d 32 3b |2 = par-|>param2;|
|00000d90| 0d 09 73 70 2d 3e 61 6e | 69 53 74 61 74 65 20 3d |..sp->an|iState =|
|00000da0| 20 70 61 72 2d 3e 61 6e | 69 53 74 61 74 65 3b 0d | par->an|iState;.|
|00000db0| 09 73 70 2d 3e 6c 69 66 | 65 53 70 61 6e 20 3d 20 |.sp->lif|eSpan = |
|00000dc0| 70 61 72 2d 3e 6c 69 66 | 65 53 70 61 6e 3b 0d 09 |par->lif|eSpan;..|
|00000dd0| 73 70 2d 3e 61 6e 67 6c | 65 20 3d 20 70 61 72 2d |sp->angl|e = par-|
|00000de0| 3e 61 6e 67 6c 65 3b 0d | 09 73 70 2d 3e 76 65 63 |>angle;.|.sp->vec|
|00000df0| 74 6f 72 20 3d 20 70 61 | 72 2d 3e 76 65 63 74 6f |tor = pa|r->vecto|
|00000e00| 72 3b 0d 0d 09 73 70 2d | 3e 74 79 70 65 20 3d 20 |r;...sp-|>type = |
|00000e10| 74 79 70 65 3b 0d 09 73 | 70 2d 3e 61 6e 67 6c 65 |type;..s|p->angle|
|00000e20| 20 2b 3d 20 76 65 63 4f | 66 66 73 65 74 3b 0d 09 | += vecO|ffset;..|
|00000e30| 69 66 20 28 73 70 2d 3e | 61 6e 67 6c 65 20 3c 20 |if (sp->|angle < |
|00000e40| 30 29 0d 09 09 73 70 2d | 3e 61 6e 67 6c 65 20 2b |0)...sp-|>angle +|
|00000e50| 3d 20 4d 61 78 41 6e 67 | 6c 65 73 3b 0d 09 69 66 |= MaxAng|les;..if|
|00000e60| 20 28 73 70 2d 3e 61 6e | 67 6c 65 20 3e 3d 20 4d | (sp->an|gle >= M|
|00000e70| 61 78 41 6e 67 6c 65 73 | 29 0d 09 09 73 70 2d 3e |axAngles|)...sp->|
|00000e80| 61 6e 67 6c 65 20 2d 3d | 20 4d 61 78 41 6e 67 6c |angle -=| MaxAngl|
|00000e90| 65 73 3b 0d 09 76 65 63 | 53 70 65 65 64 20 3d 20 |es;..vec|Speed = |
|00000ea0| 4d 79 52 61 6e 64 6f 6d | 28 33 29 2b 32 2b 4d 79 |MyRandom|(3)+2+My|
|00000eb0| 52 61 6e 64 6f 6d 28 67 | 47 61 6d 65 4c 65 76 65 |Random(g|GameLeve|
|00000ec0| 6c 29 3b 0d 09 73 70 2d | 3e 76 65 63 74 6f 72 2e |l);..sp-|>vector.|
|00000ed0| 6c 68 20 3d 20 76 65 63 | 54 61 62 6c 65 5b 73 70 |lh = vec|Table[sp|
|00000ee0| 2d 3e 61 6e 67 6c 65 5d | 2e 6c 68 20 2a 20 76 65 |->angle]|.lh * ve|
|00000ef0| 63 53 70 65 65 64 3b 0d | 09 73 70 2d 3e 76 65 63 |cSpeed;.|.sp->vec|
|00000f00| 74 6f 72 2e 6c 76 20 3d | 20 76 65 63 54 61 62 6c |tor.lv =| vecTabl|
|00000f10| 65 5b 73 70 2d 3e 61 6e | 67 6c 65 5d 2e 6c 76 20 |e[sp->an|gle].lv |
|00000f20| 2a 20 76 65 63 53 70 65 | 65 64 3b 0d 09 73 70 2d |* vecSpe|ed;..sp-|
|00000f30| 3e 61 6e 69 53 70 65 65 | 64 20 3d 20 31 20 2b 20 |>aniSpee|d = 1 + |
|00000f40| 4d 79 52 61 6e 64 6f 6d | 28 32 29 3b 0d 09 73 70 |MyRandom|(2);..sp|
|00000f50| 2d 3e 74 69 63 6b 43 74 | 72 20 3d 20 30 3b 0d 09 |->tickCt|r = 0;..|
|00000f60| 73 70 2d 3e 77 69 64 74 | 68 20 3d 20 33 32 3b 0d |sp->widt|h = 32;.|
|00000f70| 09 2b 2b 67 41 73 74 65 | 72 6f 69 64 43 6e 74 3b |.++gAste|roidCnt;|
|00000f80| 0d 7d 0d 0d 76 6f 69 64 | 20 4e 65 77 53 61 75 63 |.}..void| NewSauc|
|00000f90| 65 72 28 76 6f 69 64 29 | 0d 7b 0d 09 72 65 67 69 |er(void)|.{..regi|
|00000fa0| 73 74 65 72 20 53 70 72 | 69 74 65 49 6e 73 74 61 |ster Spr|iteInsta|
|00000fb0| 6e 63 65 20 2a 73 70 3b | 0d 09 69 66 20 28 28 73 |nce *sp;|..if ((s|
|00000fc0| 70 20 3d 20 4e 65 77 53 | 70 72 69 74 65 28 74 72 |p = NewS|prite(tr|
|00000fd0| 75 65 29 29 20 3d 3d 20 | 4e 55 4c 4c 29 0d 09 09 |ue)) == |NULL)...|
|00000fe0| 72 65 74 75 72 6e 3b 0d | 09 73 70 2d 3e 74 79 70 |return;.|.sp->typ|
|00000ff0| 65 20 3d 20 53 54 5f 53 | 61 75 63 65 72 3b 0d 09 |e = ST_S|aucer;..|
|00001000| 73 70 2d 3e 70 61 72 61 | 6d 31 20 3d 20 32 2b 67 |sp->para|m1 = 2+g|
|00001010| 47 61 6d 65 4c 65 76 65 | 6c 2f 32 3b 09 09 09 2f |GameLeve|l/2;.../|
|00001020| 2f 20 4d 61 78 20 48 69 | 74 73 0d 09 73 70 2d 3e |/ Max Hi|ts..sp->|
|00001030| 70 61 72 61 6d 32 20 3d | 20 30 3b 09 09 09 09 09 |param2 =| 0;.....|
|00001040| 09 09 2f 2f 20 48 69 74 | 73 20 54 61 6b 65 6e 0d |..// Hit|s Taken.|
|00001050| 09 73 70 2d 3e 61 6e 69 | 53 74 61 74 65 20 3d 20 |.sp->ani|State = |
|00001060| 4d 79 52 61 6e 64 6f 6d | 28 73 44 65 66 5b 73 70 |MyRandom|(sDef[sp|
|00001070| 2d 3e 74 79 70 65 5d 2e | 6e 62 72 49 63 6f 6e 73 |->type].|nbrIcons|
|00001080| 29 3b 0d 09 69 66 20 28 | 4d 79 52 61 6e 64 6f 6d |);..if (|MyRandom|
|00001090| 28 32 29 20 3d 3d 20 30 | 29 20 7b 0d 09 09 73 70 |(2) == 0|) {...sp|
|000010a0| 2d 3e 70 6f 73 2e 68 20 | 3d 20 30 3b 0d 09 09 73 |->pos.h |= 0;...s|
|000010b0| 70 2d 3e 70 6f 73 2e 76 | 20 3d 20 4d 79 52 61 6e |p->pos.v| = MyRan|
|000010c0| 64 6f 6d 28 67 50 6c 61 | 79 52 65 63 74 2e 62 6f |dom(gPla|yRect.bo|
|000010d0| 74 74 6f 6d 29 3b 0d 09 | 7d 0d 09 65 6c 73 65 20 |ttom);..|}..else |
|000010e0| 7b 0d 09 09 73 70 2d 3e | 70 6f 73 2e 68 20 3d 20 |{...sp->|pos.h = |
|000010f0| 4d 79 52 61 6e 64 6f 6d | 28 67 50 6c 61 79 52 65 |MyRandom|(gPlayRe|
|00001100| 63 74 2e 72 69 67 68 74 | 29 3b 0d 09 09 73 70 2d |ct.right|);...sp-|
|00001110| 3e 70 6f 73 2e 76 20 3d | 20 30 3b 0d 09 7d 0d 09 |>pos.v =| 0;..}..|
|00001120| 73 70 2d 3e 6f 6c 64 50 | 6f 73 20 3d 20 73 70 2d |sp->oldP|os = sp-|
|00001130| 3e 70 6f 73 3b 0d 09 73 | 70 2d 3e 61 6e 67 6c 65 |>pos;..s|p->angle|
|00001140| 20 3d 20 4d 79 52 61 6e | 64 6f 6d 28 4d 61 78 41 | = MyRan|dom(MaxA|
|00001150| 6e 67 6c 65 73 2d 34 29 | 3b 0d 09 73 70 2d 3e 61 |ngles-4)|;..sp->a|
|00001160| 6e 67 6c 65 20 2b 3d 20 | 31 2b 73 70 2d 3e 61 6e |ngle += |1+sp->an|
|00001170| 67 6c 65 2f 37 3b 0d 09 | 73 70 2d 3e 76 65 63 74 |gle/7;..|sp->vect|
|00001180| 6f 72 2e 6c 68 20 3d 20 | 76 65 63 54 61 62 6c 65 |or.lh = |vecTable|
|00001190| 5b 73 70 2d 3e 61 6e 67 | 6c 65 5d 2e 6c 68 3b 0d |[sp->ang|le].lh;.|
|000011a0| 09 73 70 2d 3e 76 65 63 | 74 6f 72 2e 6c 76 20 3d |.sp->vec|tor.lv =|
|000011b0| 20 76 65 63 54 61 62 6c | 65 5b 73 70 2d 3e 61 6e | vecTabl|e[sp->an|
|000011c0| 67 6c 65 5d 2e 6c 76 3b | 0d 09 73 70 2d 3e 61 6e |gle].lv;|..sp->an|
|000011d0| 69 53 70 65 65 64 20 3d | 20 32 3b 0d 09 73 70 2d |iSpeed =| 2;..sp-|
|000011e0| 3e 74 69 63 6b 43 74 72 | 20 3d 20 30 3b 0d 09 73 |>tickCtr| = 0;..s|
|000011f0| 70 2d 3e 77 69 64 74 68 | 20 3d 20 33 32 3b 0d 09 |p->width| = 32;..|
|00001200| 50 6c 61 79 53 6f 75 6e | 64 28 53 5f 42 61 64 47 |PlaySoun|d(S_BadG|
|00001210| 75 79 44 65 62 75 74 2c | 20 33 29 3b 0d 7d 0d 0d |uyDebut,| 3);.}..|
|00001220| 76 6f 69 64 20 4e 65 77 | 42 61 72 62 65 6c 6c 28 |void New|Barbell(|
|00001230| 76 6f 69 64 29 0d 7b 0d | 09 72 65 67 69 73 74 65 |void).{.|.registe|
|00001240| 72 20 53 70 72 69 74 65 | 49 6e 73 74 61 6e 63 65 |r Sprite|Instance|
|00001250| 20 2a 73 70 3b 0d 09 69 | 66 20 28 28 73 70 20 3d | *sp;..i|f ((sp =|
|00001260| 20 4e 65 77 53 70 72 69 | 74 65 28 74 72 75 65 29 | NewSpri|te(true)|
|00001270| 29 20 3d 3d 20 4e 55 4c | 4c 29 0d 09 09 72 65 74 |) == NUL|L)...ret|
|00001280| 75 72 6e 3b 0d 09 73 70 | 2d 3e 74 79 70 65 20 3d |urn;..sp|->type =|
|00001290| 20 53 54 5f 42 61 72 62 | 65 6c 6c 3b 0d 09 73 70 | ST_Barb|ell;..sp|
|000012a0| 2d 3e 70 61 72 61 6d 31 | 20 3d 20 33 2b 67 47 61 |->param1| = 3+gGa|
|000012b0| 6d 65 4c 65 76 65 6c 2f | 32 3b 09 09 09 2f 2f 20 |meLevel/|2;...// |
|000012c0| 4d 61 78 20 48 69 74 73 | 0d 09 73 70 2d 3e 70 61 |Max Hits|..sp->pa|
|000012d0| 72 61 6d 32 20 3d 20 30 | 3b 09 09 09 09 09 09 09 |ram2 = 0|;.......|
|000012e0| 2f 2f 20 48 69 74 73 20 | 54 61 6b 65 6e 0d 09 73 |// Hits |Taken..s|
|000012f0| 70 2d 3e 61 6e 69 53 74 | 61 74 65 20 3d 20 4d 79 |p->aniSt|ate = My|
|00001300| 52 61 6e 64 6f 6d 28 73 | 44 65 66 5b 73 70 2d 3e |Random(s|Def[sp->|
|00001310| 74 79 70 65 5d 2e 6e 62 | 72 49 63 6f 6e 73 29 3b |type].nb|rIcons);|
|00001320| 0d 09 69 66 20 28 4d 79 | 52 61 6e 64 6f 6d 28 32 |..if (My|Random(2|
|00001330| 29 20 3d 3d 20 30 29 20 | 7b 0d 09 09 73 70 2d 3e |) == 0) |{...sp->|
|00001340| 70 6f 73 2e 68 20 3d 20 | 30 3b 0d 09 09 73 70 2d |pos.h = |0;...sp-|
|00001350| 3e 70 6f 73 2e 76 20 3d | 20 4d 79 52 61 6e 64 6f |>pos.v =| MyRando|
|00001360| 6d 28 67 50 6c 61 79 52 | 65 63 74 2e 62 6f 74 74 |m(gPlayR|ect.bott|
|00001370| 6f 6d 29 3b 0d 09 7d 0d | 09 65 6c 73 65 20 7b 0d |om);..}.|.else {.|
|00001380| 09 09 73 70 2d 3e 70 6f | 73 2e 68 20 3d 20 4d 79 |..sp->po|s.h = My|
|00001390| 52 61 6e 64 6f 6d 28 67 | 50 6c 61 79 52 65 63 74 |Random(g|PlayRect|
|000013a0| 2e 72 69 67 68 74 29 3b | 0d 09 09 73 70 2d 3e 70 |.right);|...sp->p|
|000013b0| 6f 73 2e 76 20 3d 20 30 | 3b 0d 09 7d 0d 09 73 70 |os.v = 0|;..}..sp|
|000013c0| 2d 3e 6f 6c 64 50 6f 73 | 20 3d 20 73 70 2d 3e 70 |->oldPos| = sp->p|
|000013d0| 6f 73 3b 0d 09 73 70 2d | 3e 61 6e 67 6c 65 20 3d |os;..sp-|>angle =|
|000013e0| 20 4d 79 52 61 6e 64 6f | 6d 28 4d 61 78 41 6e 67 | MyRando|m(MaxAng|
|000013f0| 6c 65 73 2d 34 29 3b 0d | 09 73 70 2d 3e 61 6e 67 |les-4);.|.sp->ang|
|00001400| 6c 65 20 2b 3d 20 31 2b | 73 70 2d 3e 61 6e 67 6c |le += 1+|sp->angl|
|00001410| 65 2f 37 3b 0d 09 73 70 | 2d 3e 76 65 63 74 6f 72 |e/7;..sp|->vector|
|00001420| 2e 6c 68 20 3d 20 76 65 | 63 54 61 62 6c 65 5b 73 |.lh = ve|cTable[s|
|00001430| 70 2d 3e 61 6e 67 6c 65 | 5d 2e 6c 68 3b 0d 09 73 |p->angle|].lh;..s|
|00001440| 70 2d 3e 76 65 63 74 6f | 72 2e 6c 76 20 3d 20 76 |p->vecto|r.lv = v|
|00001450| 65 63 54 61 62 6c 65 5b | 73 70 2d 3e 61 6e 67 6c |ecTable[|sp->angl|
|00001460| 65 5d 2e 6c 76 3b 0d 09 | 73 70 2d 3e 61 6e 69 53 |e].lv;..|sp->aniS|
|00001470| 70 65 65 64 20 3d 20 32 | 3b 0d 09 73 70 2d 3e 74 |peed = 2|;..sp->t|
|00001480| 69 63 6b 43 74 72 20 3d | 20 30 3b 0d 09 73 70 2d |ickCtr =| 0;..sp-|
|00001490| 3e 77 69 64 74 68 20 3d | 20 33 32 3b 0d 09 73 70 |>width =| 32;..sp|
|000014a0| 2d 3e 6c 69 66 65 53 70 | 61 6e 20 3d 20 32 30 30 |->lifeSp|an = 200|
|000014b0| 3b 0d 09 50 6c 61 79 53 | 6f 75 6e 64 28 53 5f 42 |;..PlayS|ound(S_B|
|000014c0| 61 64 47 75 79 44 65 62 | 75 74 2c 20 33 29 3b 0d |adGuyDeb|ut, 3);.|
|000014d0| 7d 0d 0d 76 6f 69 64 20 | 4e 65 77 43 75 62 65 28 |}..void |NewCube(|
|000014e0| 76 6f 69 64 29 0d 7b 0d | 09 72 65 67 69 73 74 65 |void).{.|.registe|
|000014f0| 72 20 53 70 72 69 74 65 | 49 6e 73 74 61 6e 63 65 |r Sprite|Instance|
|00001500| 20 2a 73 70 3b 0d 09 69 | 66 20 28 28 73 70 20 3d | *sp;..i|f ((sp =|
|00001510| 20 4e 65 77 53 70 72 69 | 74 65 28 74 72 75 65 29 | NewSpri|te(true)|
|00001520| 29 20 3d 3d 20 4e 55 4c | 4c 29 0d 09 09 72 65 74 |) == NUL|L)...ret|
|00001530| 75 72 6e 3b 0d 09 73 70 | 2d 3e 74 79 70 65 20 3d |urn;..sp|->type =|
|00001540| 20 53 54 5f 43 75 62 65 | 3b 0d 09 73 70 2d 3e 70 | ST_Cube|;..sp->p|
|00001550| 61 72 61 6d 31 20 3d 20 | 34 2b 67 47 61 6d 65 4c |aram1 = |4+gGameL|
|00001560| 65 76 65 6c 2f 32 3b 09 | 09 09 2f 2f 20 4d 61 78 |evel/2;.|..// Max|
|00001570| 20 48 69 74 73 0d 09 73 | 70 2d 3e 70 61 72 61 6d | Hits..s|p->param|
|00001580| 32 20 3d 20 30 3b 09 09 | 09 09 09 09 09 2f 2f 20 |2 = 0;..|.....// |
|00001590| 48 69 74 73 20 54 61 6b | 65 6e 0d 09 73 70 2d 3e |Hits Tak|en..sp->|
|000015a0| 61 6e 69 53 74 61 74 65 | 20 3d 20 4d 79 52 61 6e |aniState| = MyRan|
|000015b0| 64 6f 6d 28 73 44 65 66 | 5b 73 70 2d 3e 74 79 70 |dom(sDef|[sp->typ|
|000015c0| 65 5d 2e 6e 62 72 49 63 | 6f 6e 73 29 3b 0d 09 69 |e].nbrIc|ons);..i|
|000015d0| 66 20 28 4d 79 52 61 6e | 64 6f 6d 28 32 29 20 3d |f (MyRan|dom(2) =|
|000015e0| 3d 20 30 29 20 7b 0d 09 | 09 73 70 2d 3e 70 6f 73 |= 0) {..|.sp->pos|
|000015f0| 2e 68 20 3d 20 30 3b 0d | 09 09 73 70 2d 3e 70 6f |.h = 0;.|..sp->po|
|00001600| 73 2e 76 20 3d 20 4d 79 | 52 61 6e 64 6f 6d 28 67 |s.v = My|Random(g|
|00001610| 50 6c 61 79 52 65 63 74 | 2e 62 6f 74 74 6f 6d 29 |PlayRect|.bottom)|
|00001620| 3b 0d 09 7d 0d 09 65 6c | 73 65 20 7b 0d 09 09 73 |;..}..el|se {...s|
|00001630| 70 2d 3e 70 6f 73 2e 68 | 20 3d 20 4d 79 52 61 6e |p->pos.h| = MyRan|
|00001640| 64 6f 6d 28 67 50 6c 61 | 79 52 65 63 74 2e 72 69 |dom(gPla|yRect.ri|
|00001650| 67 68 74 29 3b 0d 09 09 | 73 70 2d 3e 70 6f 73 2e |ght);...|sp->pos.|
|00001660| 76 20 3d 20 30 3b 0d 09 | 7d 0d 09 73 70 2d 3e 6f |v = 0;..|}..sp->o|
|00001670| 6c 64 50 6f 73 20 3d 20 | 73 70 2d 3e 70 6f 73 3b |ldPos = |sp->pos;|
|00001680| 0d 09 73 70 2d 3e 61 6e | 67 6c 65 20 3d 20 4d 79 |..sp->an|gle = My|
|00001690| 52 61 6e 64 6f 6d 28 4d | 61 78 41 6e 67 6c 65 73 |Random(M|axAngles|
|000016a0| 2d 34 29 3b 0d 09 73 70 | 2d 3e 61 6e 67 6c 65 20 |-4);..sp|->angle |
|000016b0| 2b 3d 20 31 2b 73 70 2d | 3e 61 6e 67 6c 65 2f 37 |+= 1+sp-|>angle/7|
|000016c0| 3b 0d 09 73 70 2d 3e 76 | 65 63 74 6f 72 2e 6c 68 |;..sp->v|ector.lh|
|000016d0| 20 3d 20 76 65 63 54 61 | 62 6c 65 5b 73 70 2d 3e | = vecTa|ble[sp->|
|000016e0| 61 6e 67 6c 65 5d 2e 6c | 68 3b 0d 09 73 70 2d 3e |angle].l|h;..sp->|
|000016f0| 76 65 63 74 6f 72 2e 6c | 76 20 3d 20 76 65 63 54 |vector.l|v = vecT|
|00001700| 61 62 6c 65 5b 73 70 2d | 3e 61 6e 67 6c 65 5d 2e |able[sp-|>angle].|
|00001710| 6c 76 3b 0d 09 73 70 2d | 3e 61 6e 69 53 70 65 65 |lv;..sp-|>aniSpee|
|00001720| 64 20 3d 20 32 3b 0d 09 | 73 70 2d 3e 74 69 63 6b |d = 2;..|sp->tick|
|00001730| 43 74 72 20 3d 20 30 3b | 0d 09 73 70 2d 3e 77 69 |Ctr = 0;|..sp->wi|
|00001740| 64 74 68 20 3d 20 33 32 | 3b 0d 09 73 70 2d 3e 6c |dth = 32|;..sp->l|
|00001750| 69 66 65 53 70 61 6e 20 | 3d 20 36 30 30 3b 0d 09 |ifeSpan |= 600;..|
|00001760| 50 6c 61 79 53 6f 75 6e | 64 28 53 5f 42 61 64 47 |PlaySoun|d(S_BadG|
|00001770| 75 79 44 65 62 75 74 2c | 20 33 29 3b 0d 7d 0d 0d |uyDebut,| 3);.}..|
|00001780| 0d 76 6f 69 64 20 4e 65 | 77 53 68 69 70 54 69 6d |.void Ne|wShipTim|
|00001790| 65 72 28 72 65 67 69 73 | 74 65 72 20 53 70 72 69 |er(regis|ter Spri|
|000017a0| 74 65 49 6e 73 74 61 6e | 63 65 20 2a 73 70 29 0d |teInstan|ce *sp).|
|000017b0| 7b 0d 09 69 66 20 28 73 | 70 2d 3e 74 69 63 6b 43 |{..if (s|p->tickC|
|000017c0| 74 72 2b 2b 20 3e 20 36 | 30 29 20 7b 0d 09 09 73 |tr++ > 6|0) {...s|
|000017d0| 70 2d 3e 74 69 63 6b 43 | 74 72 20 3d 20 30 3b 0d |p->tickC|tr = 0;.|
|000017e0| 09 09 73 70 2d 3e 74 79 | 70 65 20 3d 20 53 54 5f |..sp->ty|pe = ST_|
|000017f0| 54 65 61 70 6f 74 3b 0d | 09 09 50 6c 61 79 53 6f |Teapot;.|..PlaySo|
|00001800| 75 6e 64 28 53 5f 53 68 | 69 70 44 65 62 75 74 2c |und(S_Sh|ipDebut,|
|00001810| 20 33 29 3b 0d 09 09 67 | 53 68 69 70 4d 6f 64 65 | 3);...g|ShipMode|
|00001820| 20 7c 3d 20 53 4d 5f 41 | 75 74 6f 53 68 69 65 6c | |= SM_A|utoShiel|
|00001830| 64 3b 0d 09 09 67 53 68 | 69 65 6c 64 50 6f 77 65 |d;...gSh|ieldPowe|
|00001840| 72 20 3d 20 4d 61 78 53 | 68 69 65 6c 64 50 6f 77 |r = MaxS|hieldPow|
|00001850| 65 72 3b 0d 09 7d 0d 7d | 0d 0d 76 6f 69 64 20 4e |er;..}.}|..void N|
|00001860| 65 77 53 68 69 70 28 76 | 6f 69 64 29 0d 7b 0d 09 |ewShip(v|oid).{..|
|00001870| 72 65 67 69 73 74 65 72 | 20 53 70 72 69 74 65 49 |register| SpriteI|
|00001880| 6e 73 74 61 6e 63 65 20 | 2a 73 70 3b 0d 09 69 66 |nstance |*sp;..if|
|00001890| 20 28 67 52 65 6d 61 69 | 6e 69 6e 67 53 68 69 70 | (gRemai|ningShip|
|000018a0| 73 20 3d 3d 20 30 29 20 | 7b 0d 09 09 67 47 61 6d |s == 0) |{...gGam|
|000018b0| 65 53 74 61 74 65 20 3d | 20 47 53 5f 47 61 6d 65 |eState =| GS_Game|
|000018c0| 4f 76 65 72 3b 0d 09 09 | 72 65 74 75 72 6e 3b 0d |Over;...|return;.|
|000018d0| 09 7d 0d 09 69 66 20 28 | 28 73 70 20 3d 20 4e 65 |.}..if (|(sp = Ne|
|000018e0| 77 53 70 72 69 74 65 28 | 74 72 75 65 29 29 20 3d |wSprite(|true)) =|
|000018f0| 3d 20 4e 55 4c 4c 29 0d | 09 09 72 65 74 75 72 6e |= NULL).|..return|
|00001900| 3b 0d 09 67 53 68 69 70 | 20 3d 20 73 70 3b 0d 09 |;..gShip| = sp;..|
|00001910| 73 70 2d 3e 74 79 70 65 | 20 3d 20 53 54 5f 54 65 |sp->type| = ST_Te|
|00001920| 61 70 6f 74 4e 65 77 3b | 0d 09 73 70 2d 3e 70 61 |apotNew;|..sp->pa|
|00001930| 72 61 6d 31 20 3d 20 30 | 3b 0d 09 73 70 2d 3e 70 |ram1 = 0|;..sp->p|
|00001940| 6f 73 20 3d 20 67 43 65 | 6e 74 65 72 50 3b 0d 09 |os = gCe|nterP;..|
|00001950| 73 70 2d 3e 6f 6c 64 50 | 6f 73 20 3d 20 73 70 2d |sp->oldP|os = sp-|
|00001960| 3e 70 6f 73 3b 0d 09 73 | 70 2d 3e 61 6e 67 6c 65 |>pos;..s|p->angle|
|00001970| 20 3d 20 30 3b 0d 09 73 | 70 2d 3e 61 6e 69 53 74 | = 0;..s|p->aniSt|
|00001980| 61 74 65 20 3d 20 30 3b | 0d 09 73 70 2d 3e 76 65 |ate = 0;|..sp->ve|
|00001990| 63 74 6f 72 2e 6c 68 20 | 3d 20 30 4c 3b 0d 09 73 |ctor.lh |= 0L;..s|
|000019a0| 70 2d 3e 76 65 63 74 6f | 72 2e 6c 76 20 3d 20 30 |p->vecto|r.lv = 0|
|000019b0| 4c 3b 0d 09 73 70 2d 3e | 61 6e 69 53 70 65 65 64 |L;..sp->|aniSpeed|
|000019c0| 20 3d 20 30 3b 0d 09 73 | 70 2d 3e 74 69 63 6b 43 | = 0;..s|p->tickC|
|000019d0| 74 72 20 3d 20 30 3b 0d | 09 73 70 2d 3e 77 69 64 |tr = 0;.|.sp->wid|
|000019e0| 74 68 20 3d 20 33 32 3b | 0d 09 2d 2d 67 52 65 6d |th = 32;|..--gRem|
|000019f0| 61 69 6e 69 6e 67 53 68 | 69 70 73 3b 0d 09 67 53 |ainingSh|ips;..gS|
|00001a00| 68 69 70 4d 6f 64 65 20 | 3d 20 30 3b 0d 7d 0d 0d |hipMode |= 0;.}..|
|00001a10| 76 6f 69 64 20 4e 65 77 | 59 75 6d 6d 79 28 76 6f |void New|Yummy(vo|
|00001a20| 69 64 29 0d 7b 0d 09 72 | 65 67 69 73 74 65 72 20 |id).{..r|egister |
|00001a30| 53 70 72 69 74 65 49 6e | 73 74 61 6e 63 65 20 2a |SpriteIn|stance *|
|00001a40| 73 70 3b 0d 09 69 66 20 | 28 28 73 70 20 3d 20 4e |sp;..if |((sp = N|
|00001a50| 65 77 53 70 72 69 74 65 | 28 74 72 75 65 29 29 20 |ewSprite|(true)) |
|00001a60| 3d 3d 20 4e 55 4c 4c 29 | 0d 09 09 72 65 74 75 72 |== NULL)|...retur|
|00001a70| 6e 3b 0d 09 73 70 2d 3e | 74 79 70 65 20 3d 20 53 |n;..sp->|type = S|
|00001a80| 54 5f 59 75 6d 6d 69 65 | 73 3b 0d 09 73 70 2d 3e |T_Yummie|s;..sp->|
|00001a90| 61 6e 69 53 74 61 74 65 | 20 3d 20 4d 79 52 61 6e |aniState| = MyRan|
|00001aa0| 64 6f 6d 28 4e 62 72 59 | 75 6d 6d 69 65 73 29 3b |dom(NbrY|ummies);|
|00001ab0| 0d 09 73 70 2d 3e 70 61 | 72 61 6d 31 20 3d 20 73 |..sp->pa|ram1 = s|
|00001ac0| 70 2d 3e 61 6e 69 53 74 | 61 74 65 3b 0d 09 73 70 |p->aniSt|ate;..sp|
|00001ad0| 2d 3e 70 6f 73 2e 68 20 | 3d 20 49 63 6f 6e 57 69 |->pos.h |= IconWi|
|00001ae0| 64 74 68 2b 4d 79 52 61 | 6e 64 6f 6d 28 67 50 6c |dth+MyRa|ndom(gPl|
|00001af0| 61 79 52 65 63 74 2e 72 | 69 67 68 74 2d 49 63 6f |ayRect.r|ight-Ico|
|00001b00| 6e 57 69 64 74 68 29 3b | 0d 09 73 70 2d 3e 70 6f |nWidth);|..sp->po|
|00001b10| 73 2e 76 20 3d 20 49 63 | 6f 6e 48 65 69 67 68 74 |s.v = Ic|onHeight|
|00001b20| 2b 4d 79 52 61 6e 64 6f | 6d 28 67 50 6c 61 79 52 |+MyRando|m(gPlayR|
|00001b30| 65 63 74 2e 62 6f 74 74 | 6f 6d 2d 49 63 6f 6e 57 |ect.bott|om-IconW|
|00001b40| 69 64 74 68 29 3b 0d 09 | 73 70 2d 3e 76 65 63 74 |idth);..|sp->vect|
|00001b50| 6f 72 2e 6c 68 20 3d 20 | 30 3b 0d 09 73 70 2d 3e |or.lh = |0;..sp->|
|00001b60| 76 65 63 74 6f 72 2e 6c | 76 20 3d 20 30 3b 0d 09 |vector.l|v = 0;..|
|00001b70| 73 70 2d 3e 6f 6c 64 50 | 6f 73 20 3d 20 73 70 2d |sp->oldP|os = sp-|
|00001b80| 3e 70 6f 73 3b 0d 09 73 | 70 2d 3e 6c 69 66 65 53 |>pos;..s|p->lifeS|
|00001b90| 70 61 6e 20 3d 20 31 30 | 30 3b 0d 09 73 70 2d 3e |pan = 10|0;..sp->|
|00001ba0| 74 69 63 6b 43 74 72 20 | 3d 20 30 3b 0d 09 73 70 |tickCtr |= 0;..sp|
|00001bb0| 2d 3e 77 69 64 74 68 20 | 3d 20 33 32 3b 0d 09 53 |->width |= 32;..S|
|00001bc0| 74 61 6e 64 61 72 64 53 | 70 72 69 74 65 44 72 61 |tandardS|priteDra|
|00001bd0| 77 28 73 70 29 3b 0d 09 | 2b 2b 67 59 75 6d 6d 79 |w(sp);..|++gYummy|
|00001be0| 43 6e 74 3b 0d 7d 0d 0d | 76 6f 69 64 20 4e 65 77 |Cnt;.}..|void New|
|00001bf0| 51 75 61 6b 65 28 76 6f | 69 64 29 0d 7b 0d 09 73 |Quake(vo|id).{..s|
|00001c00| 44 65 66 5b 53 54 5f 53 | 74 61 74 75 73 44 69 73 |Def[ST_S|tatusDis|
|00001c10| 70 6c 61 79 5d 2e 6d 6f | 76 65 46 75 6e 63 20 3d |play].mo|veFunc =|
|00001c20| 20 51 75 61 6b 65 4d 6f | 76 65 3b 0d 09 73 54 61 | QuakeMo|ve;..sTa|
|00001c30| 62 6c 65 5b 30 5d 2e 70 | 61 72 61 6d 32 20 3d 20 |ble[0].p|aram2 = |
|00001c40| 34 30 3b 0d 7d 0d 0d 76 | 6f 69 64 20 4c 61 75 6e |40;.}..v|oid Laun|
|00001c50| 63 68 42 75 6c 6c 65 74 | 28 73 68 6f 72 74 20 74 |chBullet|(short t|
|00001c60| 79 70 65 2c 20 73 68 6f | 72 74 20 78 2c 20 73 68 |ype, sho|rt x, sh|
|00001c70| 6f 72 74 20 79 2c 20 6c | 6f 6e 67 20 76 78 2c 20 |ort y, l|ong vx, |
|00001c80| 6c 6f 6e 67 20 76 79 2c | 20 73 68 6f 72 74 20 6c |long vy,| short l|
|00001c90| 69 66 65 53 70 61 6e 2c | 20 6c 6f 6e 67 20 62 54 |ifeSpan,| long bT|
|00001ca0| 61 72 67 65 74 29 0d 7b | 0d 09 72 65 67 69 73 74 |arget).{|..regist|
|00001cb0| 65 72 20 53 70 72 69 74 | 65 49 6e 73 74 61 6e 63 |er Sprit|eInstanc|
|00001cc0| 65 20 2a 73 70 3b 0d 09 | 69 66 20 28 28 73 70 20 |e *sp;..|if ((sp |
|00001cd0| 3d 20 4e 65 77 53 70 72 | 69 74 65 28 66 61 6c 73 |= NewSpr|ite(fals|
|00001ce0| 65 29 29 20 3d 3d 20 4e | 55 4c 4c 29 0d 09 09 72 |e)) == N|ULL)...r|
|00001cf0| 65 74 75 72 6e 3b 0d 09 | 73 70 2d 3e 74 79 70 65 |eturn;..|sp->type|
|00001d00| 20 3d 20 74 79 70 65 3b | 0d 09 73 70 2d 3e 70 61 | = type;|..sp->pa|
|00001d10| 72 61 6d 31 20 3d 20 62 | 54 61 72 67 65 74 3b 0d |ram1 = b|Target;.|
|00001d20| 09 73 70 2d 3e 70 6f 73 | 2e 68 20 3d 20 78 3b 0d |.sp->pos|.h = x;.|
|00001d30| 09 73 70 2d 3e 70 6f 73 | 2e 76 20 3d 20 79 3b 0d |.sp->pos|.v = y;.|
|00001d40| 09 73 70 2d 3e 6f 6c 64 | 50 6f 73 20 3d 20 73 70 |.sp->old|Pos = sp|
|00001d50| 2d 3e 70 6f 73 3b 0d 09 | 73 70 2d 3e 76 65 63 74 |->pos;..|sp->vect|
|00001d60| 6f 72 2e 6c 68 20 3d 20 | 76 78 3b 0d 09 73 70 2d |or.lh = |vx;..sp-|
|00001d70| 3e 76 65 63 74 6f 72 2e | 6c 76 20 3d 20 76 79 3b |>vector.|lv = vy;|
|00001d80| 0d 09 73 70 2d 3e 74 69 | 63 6b 43 74 72 20 3d 20 |..sp->ti|ckCtr = |
|00001d90| 30 3b 0d 09 73 70 2d 3e | 6c 69 66 65 53 70 61 6e |0;..sp->|lifeSpan|
|00001da0| 20 3d 20 6c 69 66 65 53 | 70 61 6e 3b 0d 09 73 70 | = lifeS|pan;..sp|
|00001db0| 2d 3e 77 69 64 74 68 20 | 3d 20 32 3b 0d 7d 0d 0d |->width |= 2;.}..|
|00001dc0| 76 6f 69 64 20 4c 61 75 | 6e 63 68 53 70 61 72 6b |void Lau|nchSpark|
|00001dd0| 28 73 68 6f 72 74 20 78 | 2c 20 73 68 6f 72 74 20 |(short x|, short |
|00001de0| 79 2c 20 6c 6f 6e 67 20 | 76 78 2c 20 6c 6f 6e 67 |y, long |vx, long|
|00001df0| 20 76 79 2c 20 73 68 6f | 72 74 20 6c 69 66 65 53 | vy, sho|rt lifeS|
|00001e00| 70 61 6e 2c 20 73 68 6f | 72 74 20 63 6f 6c 6f 72 |pan, sho|rt color|
|00001e10| 29 0d 7b 0d 09 72 65 67 | 69 73 74 65 72 20 53 70 |).{..reg|ister Sp|
|00001e20| 72 69 74 65 49 6e 73 74 | 61 6e 63 65 20 2a 73 70 |riteInst|ance *sp|
|00001e30| 3b 0d 09 69 66 20 28 28 | 73 70 20 3d 20 4e 65 77 |;..if ((|sp = New|
|00001e40| 53 70 72 69 74 65 28 66 | 61 6c 73 65 29 29 20 3d |Sprite(f|alse)) =|
|00001e50| 3d 20 4e 55 4c 4c 29 0d | 09 09 72 65 74 75 72 6e |= NULL).|..return|
|00001e60| 3b 0d 09 73 70 2d 3e 74 | 79 70 65 20 3d 20 53 54 |;..sp->t|ype = ST|
|00001e70| 5f 53 70 61 72 6b 3b 0d | 09 73 70 2d 3e 70 61 72 |_Spark;.|.sp->par|
|00001e80| 61 6d 31 20 3d 20 63 6f | 6c 6f 72 3b 0d 09 73 70 |am1 = co|lor;..sp|
|00001e90| 2d 3e 70 6f 73 2e 68 20 | 3d 20 78 3b 0d 09 73 70 |->pos.h |= x;..sp|
|00001ea0| 2d 3e 70 6f 73 2e 76 20 | 3d 20 79 3b 0d 09 73 70 |->pos.v |= y;..sp|
|00001eb0| 2d 3e 6f 6c 64 50 6f 73 | 20 3d 20 73 70 2d 3e 70 |->oldPos| = sp->p|
|00001ec0| 6f 73 3b 0d 09 73 70 2d | 3e 76 65 63 74 6f 72 2e |os;..sp-|>vector.|
|00001ed0| 6c 68 20 3d 20 76 78 3b | 0d 09 73 70 2d 3e 76 65 |lh = vx;|..sp->ve|
|00001ee0| 63 74 6f 72 2e 6c 76 20 | 3d 20 76 79 3b 0d 09 73 |ctor.lv |= vy;..s|
|00001ef0| 70 2d 3e 74 69 63 6b 43 | 74 72 20 3d 20 30 3b 0d |p->tickC|tr = 0;.|
|00001f00| 09 73 70 2d 3e 6c 69 66 | 65 53 70 61 6e 20 3d 20 |.sp->lif|eSpan = |
|00001f10| 6c 69 66 65 53 70 61 6e | 3b 0d 09 73 70 2d 3e 77 |lifeSpan|;..sp->w|
|00001f20| 69 64 74 68 20 3d 20 32 | 3b 0d 09 2b 2b 67 53 70 |idth = 2|;..++gSp|
|00001f30| 61 72 6b 43 6e 74 3b 0d | 7d 0d 0d 2f 2f 20 53 70 |arkCnt;.|}..// Sp|
|00001f40| 65 63 69 61 6c 69 7a 65 | 64 20 53 70 72 69 74 65 |ecialize|d Sprite|
|00001f50| 73 20 2d 20 4b 69 6c 6c | 20 46 75 6e 63 74 69 6f |s - Kill| Functio|
|00001f60| 6e 73 0d 0d 76 6f 69 64 | 20 43 6f 6e 73 75 6d 65 |ns..void| Consume|
|00001f70| 59 75 6d 6d 79 28 72 65 | 67 69 73 74 65 72 20 53 |Yummy(re|gister S|
|00001f80| 70 72 69 74 65 49 6e 73 | 74 61 6e 63 65 20 2a 73 |priteIns|tance *s|
|00001f90| 70 29 0d 7b 0d 09 73 77 | 69 74 63 68 20 28 73 70 |p).{..sw|itch (sp|
|00001fa0| 2d 3e 70 61 72 61 6d 31 | 29 20 7b 0d 09 63 61 73 |->param1|) {..cas|
|00001fb0| 65 20 30 3a 09 09 67 53 | 63 6f 72 65 4d 75 6c 74 |e 0:..gS|coreMult|
|00001fc0| 69 70 6c 79 20 2a 3d 20 | 32 3b 09 09 62 72 65 61 |iply *= |2;..brea|
|00001fd0| 6b 3b 0d 09 63 61 73 65 | 20 31 3a 09 09 67 53 63 |k;..case| 1:..gSc|
|00001fe0| 6f 72 65 4d 75 6c 74 69 | 70 6c 79 20 2a 3d 20 33 |oreMulti|ply *= 3|
|00001ff0| 3b 09 09 62 72 65 61 6b | 3b 0d 09 63 61 73 65 20 |;..break|;..case |
|00002000| 32 3a 09 09 67 53 63 6f | 72 65 4d 75 6c 74 69 70 |2:..gSco|reMultip|
|00002010| 6c 79 20 2a 3d 20 35 3b | 09 09 62 72 65 61 6b 3b |ly *= 5;|..break;|
|00002020| 0d 09 63 61 73 65 20 33 | 3a 09 09 67 53 68 69 70 |..case 3|:..gShip|
|00002030| 4d 6f 64 65 20 7c 3d 20 | 53 4d 5f 54 72 69 70 6c |Mode |= |SM_Tripl|
|00002040| 65 3b 09 09 62 72 65 61 | 6b 3b 0d 09 63 61 73 65 |e;..brea|k;..case|
|00002050| 20 34 3a 09 09 67 53 68 | 69 70 4d 6f 64 65 20 7c | 4:..gSh|ipMode ||
|00002060| 3d 20 53 4d 5f 55 7a 69 | 3b 09 09 62 72 65 61 6b |= SM_Uzi|;..break|
|00002070| 3b 0d 09 7d 0d 09 53 74 | 61 6e 64 61 72 64 53 70 |;..}..St|andardSp|
|00002080| 72 69 74 65 45 72 61 73 | 65 28 73 70 29 3b 0d 09 |riteEras|e(sp);..|
|00002090| 4b 69 6c 6c 53 70 72 69 | 74 65 28 73 70 29 3b 0d |KillSpri|te(sp);.|
|000020a0| 09 50 6c 61 79 53 6f 75 | 6e 64 28 53 5f 59 75 6d |.PlaySou|nd(S_Yum|
|000020b0| 6d 79 43 6f 6e 73 75 6d | 65 2c 20 33 29 3b 0d 09 |myConsum|e, 3);..|
|000020c0| 2d 2d 67 59 75 6d 6d 79 | 43 6e 74 3b 0d 7d 0d 0d |--gYummy|Cnt;.}..|
|000020d0| 76 6f 69 64 20 45 78 70 | 6c 6f 64 65 53 70 72 69 |void Exp|lodeSpri|
|000020e0| 74 65 28 72 65 67 69 73 | 74 65 72 20 53 70 72 69 |te(regis|ter Spri|
|000020f0| 74 65 49 6e 73 74 61 6e | 63 65 20 2a 73 70 2c 20 |teInstan|ce *sp, |
|00002100| 72 65 67 69 73 74 65 72 | 20 73 68 6f 72 74 20 6c |register| short l|
|00002110| 69 66 65 53 70 61 6e 29 | 0d 7b 0d 09 72 65 67 69 |ifeSpan)|.{..regi|
|00002120| 73 74 65 72 20 6c 6f 6e | 67 09 69 3b 0d 09 72 65 |ster lon|g.i;..re|
|00002130| 67 69 73 74 65 72 20 73 | 68 6f 72 74 09 72 3b 0d |gister s|hort.r;.|
|00002140| 09 72 65 67 69 73 74 65 | 72 20 50 74 72 09 63 6f |.registe|r Ptr.co|
|00002150| 6c 6f 72 50 74 72 2c 20 | 6d 61 73 6b 50 74 72 3b |lorPtr, |maskPtr;|
|00002160| 0d 09 63 6f 6c 6f 72 50 | 74 72 20 3d 20 73 44 65 |..colorP|tr = sDe|
|00002170| 66 5b 73 70 2d 3e 74 79 | 70 65 5d 2e 63 6f 6c 6f |f[sp->ty|pe].colo|
|00002180| 72 4d 61 70 73 20 2b 20 | 41 6e 69 46 72 61 6d 65 |rMaps + |AniFrame|
|00002190| 49 6e 64 65 78 28 73 70 | 2d 3e 61 6e 69 53 74 61 |Index(sp|->aniSta|
|000021a0| 74 65 29 3b 0d 09 6d 61 | 73 6b 50 74 72 20 3d 20 |te);..ma|skPtr = |
|000021b0| 73 44 65 66 5b 73 70 2d | 3e 74 79 70 65 5d 2e 6d |sDef[sp-|>type].m|
|000021c0| 61 73 6b 4d 61 70 73 20 | 2b 20 41 6e 69 46 72 61 |askMaps |+ AniFra|
|000021d0| 6d 65 49 6e 64 65 78 28 | 73 70 2d 3e 61 6e 69 53 |meIndex(|sp->aniS|
|000021e0| 74 61 74 65 29 3b 0d 09 | 72 20 3d 20 30 3b 0d 09 |tate);..|r = 0;..|
|000021f0| 66 6f 72 20 28 69 20 3d | 20 30 3b 20 69 20 3c 20 |for (i =| 0; i < |
|00002200| 31 30 32 34 3b 20 69 20 | 2b 3d 20 31 32 29 20 7b |1024; i |+= 12) {|
|00002210| 0d 09 09 69 66 20 28 21 | 28 2a 6d 61 73 6b 50 74 |...if (!|(*maskPt|
|00002220| 72 29 29 20 7b 0d 09 09 | 09 4c 61 75 6e 63 68 53 |r)) {...|.LaunchS|
|00002230| 70 61 72 6b 28 73 70 2d | 3e 70 6f 73 2e 68 2b 28 |park(sp-|>pos.h+(|
|00002240| 69 26 33 31 29 2c 73 70 | 2d 3e 70 6f 73 2e 76 2b |i&31),sp|->pos.v+|
|00002250| 28 69 3e 3e 35 29 2c 0d | 09 09 09 09 09 09 20 73 |(i>>5),.|...... s|
|00002260| 70 2d 3e 76 65 63 74 6f | 72 2e 6c 68 20 2b 20 28 |p->vecto|r.lh + (|
|00002270| 76 65 63 54 61 62 6c 65 | 5b 72 5d 2e 6c 68 20 3c |vecTable|[r].lh <|
|00002280| 3c 20 31 29 2c 0d 09 09 | 09 09 09 09 20 73 70 2d |< 1),...|.... sp-|
|00002290| 3e 76 65 63 74 6f 72 2e | 6c 76 20 2b 20 28 76 65 |>vector.|lv + (ve|
|000022a0| 63 54 61 62 6c 65 5b 72 | 5d 2e 6c 76 20 3c 3c 20 |cTable[r|].lv << |
|000022b0| 31 29 2c 0d 09 09 09 09 | 09 09 20 6c 69 66 65 53 |1),.....|.. lifeS|
|000022c0| 70 61 6e 2c 0d 09 09 09 | 09 09 09 20 2a 63 6f 6c |pan,....|... *col|
|000022d0| 6f 72 50 74 72 29 3b 0d | 09 09 09 2b 2b 72 3b 0d |orPtr);.|...++r;.|
|000022e0| 09 09 09 72 20 26 3d 20 | 30 78 30 46 3b 0d 09 09 |...r &= |0x0F;...|
|000022f0| 7d 0d 09 09 63 6f 6c 6f | 72 50 74 72 20 2b 3d 20 |}...colo|rPtr += |
|00002300| 31 32 3b 0d 09 09 6d 61 | 73 6b 50 74 72 20 2b 3d |12;...ma|skPtr +=|
|00002310| 20 31 32 3b 0d 09 7d 0d | 09 4b 69 6c 6c 53 70 72 | 12;..}.|.KillSpr|
|00002320| 69 74 65 28 73 70 29 3b | 0d 09 69 66 20 28 6c 69 |ite(sp);|..if (li|
|00002330| 66 65 53 70 61 6e 20 3e | 20 31 30 29 0d 09 09 50 |feSpan >| 10)...P|
|00002340| 6c 61 79 53 6f 75 6e 64 | 28 53 5f 53 68 69 70 45 |laySound|(S_ShipE|
|00002350| 78 70 6c 6f 64 65 73 2c | 20 33 29 3b 0d 09 65 6c |xplodes,| 3);..el|
|00002360| 73 65 0d 09 09 50 6c 61 | 79 53 6f 75 6e 64 28 53 |se...Pla|ySound(S|
|00002370| 5f 45 78 70 6c 6f 73 69 | 6f 6e 2c 20 32 29 3b 0d |_Explosi|on, 2);.|
|00002380| 7d 0d 0d 0d 2f 2f 20 53 | 70 72 69 74 65 20 4d 6f |}...// S|prite Mo|
|00002390| 76 65 20 46 75 6e 63 74 | 69 6f 6e 73 0d 0d 76 6f |ve Funct|ions..vo|
|000023a0| 69 64 20 53 74 61 6e 64 | 61 72 64 53 70 72 69 74 |id Stand|ardSprit|
|000023b0| 65 4d 6f 76 65 28 72 65 | 67 69 73 74 65 72 20 53 |eMove(re|gister S|
|000023c0| 70 72 69 74 65 49 6e 73 | 74 61 6e 63 65 20 2a 73 |priteIns|tance *s|
|000023d0| 70 29 0d 7b 0d 09 2f 2f | 20 55 70 64 61 74 65 20 |p).{..//| Update |
|000023e0| 70 6f 73 69 74 69 6f 6e | 0d 09 73 70 2d 3e 70 6f |position|..sp->po|
|000023f0| 73 2e 68 20 2b 3d 20 28 | 73 70 2d 3e 76 65 63 74 |s.h += (|sp->vect|
|00002400| 6f 72 2e 6c 68 20 3e 3e | 20 31 36 29 3b 0d 09 73 |or.lh >>| 16);..s|
|00002410| 70 2d 3e 70 6f 73 2e 76 | 20 2b 3d 20 28 73 70 2d |p->pos.v| += (sp-|
|00002420| 3e 76 65 63 74 6f 72 2e | 6c 76 20 3e 3e 20 31 36 |>vector.|lv >> 16|
|00002430| 29 3b 0d 09 69 66 20 28 | 73 70 2d 3e 70 6f 73 2e |);..if (|sp->pos.|
|00002440| 68 20 3c 20 67 50 6c 61 | 79 52 65 63 74 2e 6c 65 |h < gPla|yRect.le|
|00002450| 66 74 29 0d 09 09 73 70 | 2d 3e 70 6f 73 2e 68 20 |ft)...sp|->pos.h |
|00002460| 2b 3d 20 67 50 6c 61 79 | 57 69 64 74 68 3b 0d 09 |+= gPlay|Width;..|
|00002470| 69 66 20 28 73 70 2d 3e | 70 6f 73 2e 76 20 3c 20 |if (sp->|pos.v < |
|00002480| 67 50 6c 61 79 52 65 63 | 74 2e 74 6f 70 29 0d 09 |gPlayRec|t.top)..|
|00002490| 09 73 70 2d 3e 70 6f 73 | 2e 76 20 2b 3d 20 67 50 |.sp->pos|.v += gP|
|000024a0| 6c 61 79 48 65 69 67 68 | 74 3b 0d 09 69 66 20 28 |layHeigh|t;..if (|
|000024b0| 73 70 2d 3e 70 6f 73 2e | 68 20 3e 20 67 50 6c 61 |sp->pos.|h > gPla|
|000024c0| 79 52 65 63 74 2e 72 69 | 67 68 74 29 0d 09 09 73 |yRect.ri|ght)...s|
|000024d0| 70 2d 3e 70 6f 73 2e 68 | 20 2d 3d 20 67 50 6c 61 |p->pos.h| -= gPla|
|000024e0| 79 57 69 64 74 68 3b 0d | 09 69 66 20 28 73 70 2d |yWidth;.|.if (sp-|
|000024f0| 3e 70 6f 73 2e 76 20 3e | 20 67 50 6c 61 79 52 65 |>pos.v >| gPlayRe|
|00002500| 63 74 2e 62 6f 74 74 6f | 6d 29 0d 09 09 73 70 2d |ct.botto|m)...sp-|
|00002510| 3e 70 6f 73 2e 76 20 2d | 3d 20 67 50 6c 61 79 48 |>pos.v -|= gPlayH|
|00002520| 65 69 67 68 74 3b 0d 0d | 09 2f 2f 20 55 70 64 61 |eight;..|.// Upda|
|00002530| 74 65 20 41 6e 69 6d 61 | 74 69 6f 6e 20 46 72 61 |te Anima|tion Fra|
|00002540| 6d 65 0d 09 73 70 2d 3e | 74 69 63 6b 43 74 72 2b |me..sp->|tickCtr+|
|00002550| 2b 3b 0d 09 69 66 20 28 | 73 70 2d 3e 74 69 63 6b |+;..if (|sp->tick|
|00002560| 43 74 72 20 3e 3d 20 73 | 70 2d 3e 61 6e 69 53 70 |Ctr >= s|p->aniSp|
|00002570| 65 65 64 29 20 7b 0d 09 | 09 73 70 2d 3e 74 69 63 |eed) {..|.sp->tic|
|00002580| 6b 43 74 72 20 3d 20 30 | 3b 0d 09 09 73 70 2d 3e |kCtr = 0|;...sp->|
|00002590| 61 6e 69 53 74 61 74 65 | 2b 2b 3b 0d 09 09 69 66 |aniState|++;...if|
|000025a0| 20 28 73 70 2d 3e 61 6e | 69 53 74 61 74 65 20 3e | (sp->an|iState >|
|000025b0| 3d 20 73 44 65 66 5b 73 | 70 2d 3e 74 79 70 65 5d |= sDef[s|p->type]|
|000025c0| 2e 6e 62 72 49 63 6f 6e | 73 29 0d 09 09 09 73 70 |.nbrIcon|s)....sp|
|000025d0| 2d 3e 61 6e 69 53 74 61 | 74 65 20 3d 20 30 3b 0d |->aniSta|te = 0;.|
|000025e0| 09 7d 0d 7d 0d 0d 23 69 | 66 20 44 45 42 55 47 47 |.}.}..#i|f DEBUGG|
|000025f0| 49 4e 47 0d 0d 76 6f 69 | 64 20 4d 61 78 53 70 72 |ING..voi|d MaxSpr|
|00002600| 69 74 65 4d 6f 76 65 28 | 72 65 67 69 73 74 65 72 |iteMove(|register|
|00002610| 20 53 70 72 69 74 65 49 | 6e 73 74 61 6e 63 65 20 | SpriteI|nstance |
|00002620| 2a 73 70 29 0d 7b 0d 09 | 73 70 2d 3e 70 6f 73 2e |*sp).{..|sp->pos.|
|00002630| 68 20 3d 20 33 32 3b 0d | 09 73 70 2d 3e 70 6f 73 |h = 32;.|.sp->pos|
|00002640| 2e 76 20 3d 20 34 38 30 | 2b 33 32 2d 67 4d 61 78 |.v = 480|+32-gMax|
|00002650| 53 70 72 69 74 65 3b 0d | 7d 0d 0d 76 6f 69 64 20 |Sprite;.|}..void |
|00002660| 53 70 72 69 74 65 43 6e | 74 4d 6f 76 65 28 72 65 |SpriteCn|tMove(re|
|00002670| 67 69 73 74 65 72 20 53 | 70 72 69 74 65 49 6e 73 |gister S|priteIns|
|00002680| 74 61 6e 63 65 20 2a 73 | 70 29 0d 7b 0d 09 73 70 |tance *s|p).{..sp|
|00002690| 2d 3e 70 6f 73 2e 68 20 | 3d 20 34 30 3b 0d 09 73 |->pos.h |= 40;..s|
|000026a0| 70 2d 3e 70 6f 73 2e 76 | 20 3d 20 34 38 30 2b 33 |p->pos.v| = 480+3|
|000026b0| 32 2d 67 53 70 72 69 74 | 65 43 6e 74 3b 0d 7d 0d |2-gSprit|eCnt;.}.|
|000026c0| 0d 23 65 6e 64 69 66 0d | 0d 76 6f 69 64 20 53 61 |.#endif.|.void Sa|
|000026d0| 75 63 65 72 4d 6f 76 65 | 28 72 65 67 69 73 74 65 |ucerMove|(registe|
|000026e0| 72 20 53 70 72 69 74 65 | 49 6e 73 74 61 6e 63 65 |r Sprite|Instance|
|000026f0| 20 2a 73 70 29 0d 7b 0d | 09 2f 2f 20 55 70 64 61 | *sp).{.|.// Upda|
|00002700| 74 65 20 70 6f 73 69 74 | 69 6f 6e 0d 09 73 70 2d |te posit|ion..sp-|
|00002710| 3e 70 6f 73 2e 68 20 2b | 3d 20 28 73 70 2d 3e 76 |>pos.h +|= (sp->v|
|00002720| 65 63 74 6f 72 2e 6c 68 | 20 3e 3e 20 31 36 29 3b |ector.lh| >> 16);|
|00002730| 0d 09 73 70 2d 3e 70 6f | 73 2e 76 20 2b 3d 20 28 |..sp->po|s.v += (|
|00002740| 73 70 2d 3e 76 65 63 74 | 6f 72 2e 6c 76 20 3e 3e |sp->vect|or.lv >>|
|00002750| 20 31 36 29 3b 0d 09 69 | 66 20 28 73 70 2d 3e 70 | 16);..i|f (sp->p|
|00002760| 6f 73 2e 68 20 3c 20 67 | 50 6c 61 79 52 65 63 74 |os.h < g|PlayRect|
|00002770| 2e 6c 65 66 74 29 0d 09 | 09 73 70 2d 3e 70 6f 73 |.left)..|.sp->pos|
|00002780| 2e 68 20 2b 3d 20 67 50 | 6c 61 79 57 69 64 74 68 |.h += gP|layWidth|
|00002790| 3b 0d 09 69 66 20 28 73 | 70 2d 3e 70 6f 73 2e 76 |;..if (s|p->pos.v|
|000027a0| 20 3c 20 67 50 6c 61 79 | 52 65 63 74 2e 74 6f 70 | < gPlay|Rect.top|
|000027b0| 29 0d 09 09 73 70 2d 3e | 70 6f 73 2e 76 20 2b 3d |)...sp->|pos.v +=|
|000027c0| 20 67 50 6c 61 79 48 65 | 69 67 68 74 3b 0d 09 69 | gPlayHe|ight;..i|
|000027d0| 66 20 28 73 70 2d 3e 70 | 6f 73 2e 68 20 3e 20 67 |f (sp->p|os.h > g|
|000027e0| 50 6c 61 79 52 65 63 74 | 2e 72 69 67 68 74 29 0d |PlayRect|.right).|
|000027f0| 09 09 73 70 2d 3e 70 6f | 73 2e 68 20 2d 3d 20 67 |..sp->po|s.h -= g|
|00002800| 50 6c 61 79 57 69 64 74 | 68 3b 0d 09 69 66 20 28 |PlayWidt|h;..if (|
|00002810| 73 70 2d 3e 70 6f 73 2e | 76 20 3e 20 67 50 6c 61 |sp->pos.|v > gPla|
|00002820| 79 52 65 63 74 2e 62 6f | 74 74 6f 6d 29 0d 09 09 |yRect.bo|ttom)...|
|00002830| 73 70 2d 3e 70 6f 73 2e | 76 20 2d 3d 20 67 50 6c |sp->pos.|v -= gPl|
|00002840| 61 79 48 65 69 67 68 74 | 3b 0d 0d 09 2f 2f 20 55 |ayHeight|;...// U|
|00002850| 70 64 61 74 65 20 41 6e | 69 6d 61 74 69 6f 6e 20 |pdate An|imation |
|00002860| 46 72 61 6d 65 0d 09 73 | 70 2d 3e 74 69 63 6b 43 |Frame..s|p->tickC|
|00002870| 74 72 2b 2b 3b 0d 09 69 | 66 20 28 73 70 2d 3e 74 |tr++;..i|f (sp->t|
|00002880| 69 63 6b 43 74 72 20 3e | 3d 20 73 70 2d 3e 61 6e |ickCtr >|= sp->an|
|00002890| 69 53 70 65 65 64 29 20 | 7b 0d 09 09 73 70 2d 3e |iSpeed) |{...sp->|
|000028a0| 74 69 63 6b 43 74 72 20 | 3d 20 30 3b 0d 09 09 73 |tickCtr |= 0;...s|
|000028b0| 70 2d 3e 61 6e 69 53 74 | 61 74 65 2b 2b 3b 0d 09 |p->aniSt|ate++;..|
|000028c0| 09 69 66 20 28 73 70 2d | 3e 61 6e 69 53 74 61 74 |.if (sp-|>aniStat|
|000028d0| 65 20 3e 3d 20 73 44 65 | 66 5b 73 70 2d 3e 74 79 |e >= sDe|f[sp->ty|
|000028e0| 70 65 5d 2e 6e 62 72 49 | 63 6f 6e 73 29 20 7b 0d |pe].nbrI|cons) {.|
|000028f0| 09 09 09 4c 6f 6e 67 50 | 6f 69 6e 74 09 6e 65 77 |...LongP|oint.new|
|00002900| 56 65 63 3b 0d 09 09 09 | 73 70 2d 3e 61 6e 69 53 |Vec;....|sp->aniS|
|00002910| 74 61 74 65 20 3d 20 30 | 3b 0d 09 09 09 69 66 20 |tate = 0|;....if |
|00002920| 28 67 53 68 69 70 20 26 | 26 20 67 53 68 69 70 2d |(gShip &|& gShip-|
|00002930| 3e 74 79 70 65 20 3d 3d | 20 53 54 5f 54 65 61 70 |>type ==| ST_Teap|
|00002940| 6f 74 20 7c 7c 20 67 53 | 68 69 70 2d 3e 74 79 70 |ot || gS|hip->typ|
|00002950| 65 20 3d 3d 20 53 54 5f | 54 65 61 70 6f 74 54 29 |e == ST_|TeapotT)|
|00002960| 20 7b 0d 09 09 09 09 64 | 6f 75 62 6c 65 20 73 63 | {.....d|ouble sc|
|00002970| 61 6c 65 3b 0d 09 09 09 | 09 72 65 67 69 73 74 65 |ale;....|.registe|
|00002980| 72 20 73 68 6f 72 74 09 | 73 6c 6f 77 6e 65 73 73 |r short.|slowness|
|00002990| 3b 0d 09 09 09 09 6e 65 | 77 56 65 63 2e 6c 68 20 |;.....ne|wVec.lh |
|000029a0| 3d 20 67 53 68 69 70 2d | 3e 70 6f 73 2e 68 20 2d |= gShip-|>pos.h -|
|000029b0| 20 73 70 2d 3e 70 6f 73 | 2e 68 3b 0d 09 09 09 09 | sp->pos|.h;.....|
|000029c0| 6e 65 77 56 65 63 2e 6c | 76 20 3d 20 67 53 68 69 |newVec.l|v = gShi|
|000029d0| 70 2d 3e 70 6f 73 2e 76 | 2b 31 32 20 2d 20 73 70 |p->pos.v|+12 - sp|
|000029e0| 2d 3e 70 6f 73 2e 76 3b | 09 09 09 0d 09 09 09 09 |->pos.v;|........|
|000029f0| 73 63 61 6c 65 20 3d 20 | 31 2e 30 20 2f 20 73 71 |scale = |1.0 / sq|
|00002a00| 72 74 28 09 28 64 6f 75 | 62 6c 65 29 20 6e 65 77 |rt(.(dou|ble) new|
|00002a10| 56 65 63 2e 6c 68 2a 6e | 65 77 56 65 63 2e 6c 68 |Vec.lh*n|ewVec.lh|
|00002a20| 20 2b 0d 09 09 09 09 09 | 09 6e 65 77 56 65 63 2e | +......|.newVec.|
|00002a30| 6c 76 2a 6e 65 77 56 65 | 63 2e 6c 76 29 3b 0d 09 |lv*newVe|c.lv);..|
|00002a40| 09 09 09 6e 65 77 56 65 | 63 2e 6c 68 20 2a 3d 20 |...newVe|c.lh *= |
|00002a50| 73 63 61 6c 65 20 2a 20 | 36 35 35 33 36 2e 30 3b |scale * |65536.0;|
|00002a60| 0d 09 09 09 09 6e 65 77 | 56 65 63 2e 6c 76 20 2a |.....new|Vec.lv *|
|00002a70| 3d 20 73 63 61 6c 65 20 | 2a 20 36 35 35 33 36 2e |= scale |* 65536.|
|00002a80| 30 3b 0d 09 09 09 09 6e | 65 77 56 65 63 2e 6c 68 |0;.....n|ewVec.lh|
|00002a90| 20 3c 3c 3d 20 33 3b 0d | 09 09 09 09 6e 65 77 56 | <<= 3;.|....newV|
|00002aa0| 65 63 2e 6c 76 20 3c 3c | 3d 20 33 3b 0d 09 09 09 |ec.lv <<|= 3;....|
|00002ab0| 09 73 6c 6f 77 6e 65 73 | 73 20 3d 20 31 20 2b 20 |.slownes|s = 1 + |
|00002ac0| 4d 79 52 61 6e 64 6f 6d | 28 32 29 3b 0d 09 09 09 |MyRandom|(2);....|
|00002ad0| 09 73 70 2d 3e 76 65 63 | 74 6f 72 2e 6c 68 20 3d |.sp->vec|tor.lh =|
|00002ae0| 20 6e 65 77 56 65 63 2e | 6c 68 20 3e 3e 20 73 6c | newVec.|lh >> sl|
|00002af0| 6f 77 6e 65 73 73 3b 0d | 09 09 09 09 73 70 2d 3e |owness;.|....sp->|
|00002b00| 76 65 63 74 6f 72 2e 6c | 76 20 3d 20 6e 65 77 56 |vector.l|v = newV|
|00002b10| 65 63 2e 6c 76 20 3e 3e | 20 73 6c 6f 77 6e 65 73 |ec.lv >>| slownes|
|00002b20| 73 3b 0d 09 09 09 09 4c | 61 75 6e 63 68 42 75 6c |s;.....L|aunchBul|
|00002b30| 6c 65 74 28 53 54 5f 50 | 68 6f 74 6f 6e 2c 0d 09 |let(ST_P|hoton,..|
|00002b40| 09 09 09 09 09 09 20 73 | 70 2d 3e 70 6f 73 2e 68 |...... s|p->pos.h|
|00002b50| 2b 31 36 2c 73 70 2d 3e | 70 6f 73 2e 76 2b 34 2c |+16,sp->|pos.v+4,|
|00002b60| 0d 09 09 09 09 09 09 09 | 20 6e 65 77 56 65 63 2e |........| newVec.|
|00002b70| 6c 68 2c 6e 65 77 56 65 | 63 2e 6c 76 2c 0d 09 09 |lh,newVe|c.lv,...|
|00002b80| 09 09 09 09 09 20 32 35 | 2c 0d 09 09 09 09 09 09 |..... 25|,.......|
|00002b90| 09 20 42 46 5f 42 61 64 | 42 75 6c 6c 65 74 29 3b |. BF_Bad|Bullet);|
|00002ba0| 0d 0d 09 09 09 09 50 6c | 61 79 53 6f 75 6e 64 28 |......Pl|aySound(|
|00002bb0| 53 5f 45 6e 65 6d 79 46 | 69 72 65 73 2c 20 32 29 |S_EnemyF|ires, 2)|
|00002bc0| 3b 0d 09 09 09 7d 0d 09 | 09 7d 0d 09 7d 0d 7d 0d |;....}..|.}..}.}.|
|00002bd0| 0d 76 6f 69 64 20 42 61 | 72 62 65 6c 6c 4d 6f 76 |.void Ba|rbellMov|
|00002be0| 65 28 72 65 67 69 73 74 | 65 72 20 53 70 72 69 74 |e(regist|er Sprit|
|00002bf0| 65 49 6e 73 74 61 6e 63 | 65 20 2a 73 70 29 0d 7b |eInstanc|e *sp).{|
|00002c00| 0d 09 2f 2f 20 55 70 64 | 61 74 65 20 70 6f 73 69 |..// Upd|ate posi|
|00002c10| 74 69 6f 6e 0d 09 73 70 | 2d 3e 70 6f 73 2e 68 20 |tion..sp|->pos.h |
|00002c20| 2b 3d 20 28 73 70 2d 3e | 76 65 63 74 6f 72 2e 6c |+= (sp->|vector.l|
|00002c30| 68 20 3e 3e 20 31 36 29 | 3b 0d 09 73 70 2d 3e 70 |h >> 16)|;..sp->p|
|00002c40| 6f 73 2e 76 20 2b 3d 20 | 28 73 70 2d 3e 76 65 63 |os.v += |(sp->vec|
|00002c50| 74 6f 72 2e 6c 76 20 3e | 3e 20 31 36 29 3b 0d 09 |tor.lv >|> 16);..|
|00002c60| 69 66 20 28 73 70 2d 3e | 70 6f 73 2e 68 20 3c 20 |if (sp->|pos.h < |
|00002c70| 67 50 6c 61 79 52 65 63 | 74 2e 6c 65 66 74 29 0d |gPlayRec|t.left).|
|00002c80| 09 09 73 70 2d 3e 70 6f | 73 2e 68 20 2b 3d 20 67 |..sp->po|s.h += g|
|00002c90| 50 6c 61 79 57 69 64 74 | 68 3b 0d 09 69 66 20 28 |PlayWidt|h;..if (|
|00002ca0| 73 70 2d 3e 70 6f 73 2e | 76 20 3c 20 67 50 6c 61 |sp->pos.|v < gPla|
|00002cb0| 79 52 65 63 74 2e 74 6f | 70 29 0d 09 09 73 70 2d |yRect.to|p)...sp-|
|00002cc0| 3e 70 6f 73 2e 76 20 2b | 3d 20 67 50 6c 61 79 48 |>pos.v +|= gPlayH|
|00002cd0| 65 69 67 68 74 3b 0d 09 | 69 66 20 28 73 70 2d 3e |eight;..|if (sp->|
|00002ce0| 70 6f 73 2e 68 20 3e 20 | 67 50 6c 61 79 52 65 63 |pos.h > |gPlayRec|
|00002cf0| 74 2e 72 69 67 68 74 29 | 0d 09 09 73 70 2d 3e 70 |t.right)|...sp->p|
|00002d00| 6f 73 2e 68 20 2d 3d 20 | 67 50 6c 61 79 57 69 64 |os.h -= |gPlayWid|
|00002d10| 74 68 3b 0d 09 69 66 20 | 28 73 70 2d 3e 70 6f 73 |th;..if |(sp->pos|
|00002d20| 2e 76 20 3e 20 67 50 6c | 61 79 52 65 63 74 2e 62 |.v > gPl|ayRect.b|
|00002d30| 6f 74 74 6f 6d 29 0d 09 | 09 73 70 2d 3e 70 6f 73 |ottom)..|.sp->pos|
|00002d40| 2e 76 20 2d 3d 20 67 50 | 6c 61 79 48 65 69 67 68 |.v -= gP|layHeigh|
|00002d50| 74 3b 0d 0d 09 69 66 20 | 28 2d 2d 73 70 2d 3e 6c |t;...if |(--sp->l|
|00002d60| 69 66 65 53 70 61 6e 20 | 3d 3d 20 30 29 20 7b 0d |ifeSpan |== 0) {.|
|00002d70| 09 09 45 78 70 6c 6f 64 | 65 53 70 72 69 74 65 28 |..Explod|eSprite(|
|00002d80| 73 70 2c 33 30 29 3b 0d | 09 09 4e 65 77 51 75 61 |sp,30);.|..NewQua|
|00002d90| 6b 65 28 29 3b 0d 09 09 | 72 65 74 75 72 6e 3b 0d |ke();...|return;.|
|00002da0| 09 7d 0d 0d 09 2f 2f 20 | 55 70 64 61 74 65 20 41 |.}...// |Update A|
|00002db0| 6e 69 6d 61 74 69 6f 6e | 20 46 72 61 6d 65 0d 09 |nimation| Frame..|
|00002dc0| 73 70 2d 3e 74 69 63 6b | 43 74 72 2b 2b 3b 0d 09 |sp->tick|Ctr++;..|
|00002dd0| 69 66 20 28 73 70 2d 3e | 74 69 63 6b 43 74 72 20 |if (sp->|tickCtr |
|00002de0| 3e 3d 20 73 70 2d 3e 61 | 6e 69 53 70 65 65 64 29 |>= sp->a|niSpeed)|
|00002df0| 20 7b 0d 09 09 73 70 2d | 3e 74 69 63 6b 43 74 72 | {...sp-|>tickCtr|
|00002e00| 20 3d 20 30 3b 0d 09 09 | 69 66 20 28 2b 2b 73 70 | = 0;...|if (++sp|
|00002e10| 2d 3e 61 6e 69 53 74 61 | 74 65 20 3e 3d 20 73 44 |->aniSta|te >= sD|
|00002e20| 65 66 5b 73 70 2d 3e 74 | 79 70 65 5d 2e 6e 62 72 |ef[sp->t|ype].nbr|
|00002e30| 49 63 6f 6e 73 29 0d 09 | 09 09 73 70 2d 3e 61 6e |Icons)..|..sp->an|
|00002e40| 69 53 74 61 74 65 20 3d | 20 30 3b 0d 09 09 69 66 |iState =| 0;...if|
|00002e50| 20 28 28 73 70 2d 3e 61 | 6e 69 53 74 61 74 65 20 | ((sp->a|niState |
|00002e60| 26 20 31 29 29 20 7b 0d | 09 09 09 4c 6f 6e 67 50 |& 1)) {.|...LongP|
|00002e70| 6f 69 6e 74 09 62 75 6c | 6c 65 74 56 65 63 3b 0d |oint.bul|letVec;.|
|00002e80| 09 09 09 69 66 20 28 67 | 53 68 69 70 20 26 26 20 |...if (g|Ship && |
|00002e90| 67 53 68 69 70 2d 3e 74 | 79 70 65 20 3d 3d 20 53 |gShip->t|ype == S|
|00002ea0| 54 5f 54 65 61 70 6f 74 | 20 7c 7c 20 67 53 68 69 |T_Teapot| || gShi|
|00002eb0| 70 2d 3e 74 79 70 65 20 | 3d 3d 20 53 54 5f 54 65 |p->type |== ST_Te|
|00002ec0| 61 70 6f 74 54 29 20 7b | 0d 09 09 09 09 64 6f 75 |apotT) {|.....dou|
|00002ed0| 62 6c 65 20 73 63 61 6c | 65 3b 0d 0d 09 09 09 09 |ble scal|e;......|
|00002ee0| 62 75 6c 6c 65 74 56 65 | 63 2e 6c 68 20 3d 20 67 |bulletVe|c.lh = g|
|00002ef0| 53 68 69 70 2d 3e 70 6f | 73 2e 68 20 2d 20 73 70 |Ship->po|s.h - sp|
|00002f00| 2d 3e 70 6f 73 2e 68 3b | 0d 09 09 09 09 62 75 6c |->pos.h;|.....bul|
|00002f10| 6c 65 74 56 65 63 2e 6c | 76 20 3d 20 67 53 68 69 |letVec.l|v = gShi|
|00002f20| 70 2d 3e 70 6f 73 2e 76 | 2b 31 32 20 2d 20 73 70 |p->pos.v|+12 - sp|
|00002f30| 2d 3e 70 6f 73 2e 76 3b | 09 09 09 0d 09 09 09 09 |->pos.v;|........|
|00002f40| 73 63 61 6c 65 20 3d 20 | 31 2e 30 20 2f 20 73 71 |scale = |1.0 / sq|
|00002f50| 72 74 28 09 28 64 6f 75 | 62 6c 65 29 20 62 75 6c |rt(.(dou|ble) bul|
|00002f60| 6c 65 74 56 65 63 2e 6c | 68 2a 62 75 6c 6c 65 74 |letVec.l|h*bullet|
|00002f70| 56 65 63 2e 6c 68 20 2b | 0d 09 09 09 09 09 09 62 |Vec.lh +|.......b|
|00002f80| 75 6c 6c 65 74 56 65 63 | 2e 6c 76 2a 62 75 6c 6c |ulletVec|.lv*bull|
|00002f90| 65 74 56 65 63 2e 6c 76 | 29 3b 0d 09 09 09 09 62 |etVec.lv|);.....b|
|00002fa0| 75 6c 6c 65 74 56 65 63 | 2e 6c 68 20 2a 3d 20 73 |ulletVec|.lh *= s|
|00002fb0| 63 61 6c 65 20 2a 20 36 | 35 35 33 36 2e 30 3b 0d |cale * 6|5536.0;.|
|00002fc0| 09 09 09 09 62 75 6c 6c | 65 74 56 65 63 2e 6c 76 |....bull|etVec.lv|
|00002fd0| 20 2a 3d 20 73 63 61 6c | 65 20 2a 20 36 35 35 33 | *= scal|e * 6553|
|00002fe0| 36 2e 30 3b 0d 09 09 09 | 09 62 75 6c 6c 65 74 56 |6.0;....|.bulletV|
|00002ff0| 65 63 2e 6c 68 20 3c 3c | 3d 20 32 3b 0d 09 09 09 |ec.lh <<|= 2;....|
|00003000| 09 62 75 6c 6c 65 74 56 | 65 63 2e 6c 76 20 3c 3c |.bulletV|ec.lv <<|
|00003010| 3d 20 32 3b 0d 0d 09 09 | 09 09 73 70 2d 3e 76 65 |= 2;....|..sp->ve|
|00003020| 63 74 6f 72 20 3d 20 62 | 75 6c 6c 65 74 56 65 63 |ctor = b|ulletVec|
|00003030| 3b 0d 09 09 09 7d 0d 09 | 09 7d 0d 09 7d 0d 7d 0d |;....}..|.}..}.}.|
|00003040| 0d 76 6f 69 64 20 43 75 | 62 65 4d 6f 76 65 28 72 |.void Cu|beMove(r|
|00003050| 65 67 69 73 74 65 72 20 | 53 70 72 69 74 65 49 6e |egister |SpriteIn|
|00003060| 73 74 61 6e 63 65 20 2a | 73 70 29 0d 7b 0d 09 2f |stance *|sp).{../|
|00003070| 2f 20 55 70 64 61 74 65 | 20 70 6f 73 69 74 69 6f |/ Update| positio|
|00003080| 6e 0d 09 73 70 2d 3e 70 | 6f 73 2e 68 20 2b 3d 20 |n..sp->p|os.h += |
|00003090| 28 73 70 2d 3e 76 65 63 | 74 6f 72 2e 6c 68 20 3e |(sp->vec|tor.lh >|
|000030a0| 3e 20 31 36 29 3b 0d 09 | 73 70 2d 3e 70 6f 73 2e |> 16);..|sp->pos.|
|000030b0| 76 20 2b 3d 20 28 73 70 | 2d 3e 76 65 63 74 6f 72 |v += (sp|->vector|
|000030c0| 2e 6c 76 20 3e 3e 20 31 | 36 29 3b 0d 09 69 66 20 |.lv >> 1|6);..if |
|000030d0| 28 73 70 2d 3e 70 6f 73 | 2e 68 20 3c 20 67 50 6c |(sp->pos|.h < gPl|
|000030e0| 61 79 52 65 63 74 2e 6c | 65 66 74 29 0d 09 09 73 |ayRect.l|eft)...s|
|000030f0| 70 2d 3e 70 6f 73 2e 68 | 20 2b 3d 20 67 50 6c 61 |p->pos.h| += gPla|
|00003100| 79 57 69 64 74 68 3b 0d | 09 69 66 20 28 73 70 2d |yWidth;.|.if (sp-|
|00003110| 3e 70 6f 73 2e 76 20 3c | 20 67 50 6c 61 79 52 65 |>pos.v <| gPlayRe|
|00003120| 63 74 2e 74 6f 70 29 0d | 09 09 73 70 2d 3e 70 6f |ct.top).|..sp->po|
|00003130| 73 2e 76 20 2b 3d 20 67 | 50 6c 61 79 48 65 69 67 |s.v += g|PlayHeig|
|00003140| 68 74 3b 0d 09 69 66 20 | 28 73 70 2d 3e 70 6f 73 |ht;..if |(sp->pos|
|00003150| 2e 68 20 3e 20 67 50 6c | 61 79 52 65 63 74 2e 72 |.h > gPl|ayRect.r|
|00003160| 69 67 68 74 29 0d 09 09 | 73 70 2d 3e 70 6f 73 2e |ight)...|sp->pos.|
|00003170| 68 20 2d 3d 20 67 50 6c | 61 79 57 69 64 74 68 3b |h -= gPl|ayWidth;|
|00003180| 0d 09 69 66 20 28 73 70 | 2d 3e 70 6f 73 2e 76 20 |..if (sp|->pos.v |
|00003190| 3e 20 67 50 6c 61 79 52 | 65 63 74 2e 62 6f 74 74 |> gPlayR|ect.bott|
|000031a0| 6f 6d 29 0d 09 09 73 70 | 2d 3e 70 6f 73 2e 76 20 |om)...sp|->pos.v |
|000031b0| 2d 3d 20 67 50 6c 61 79 | 48 65 69 67 68 74 3b 0d |-= gPlay|Height;.|
|000031c0| 0d 09 69 66 20 28 2d 2d | 73 70 2d 3e 6c 69 66 65 |..if (--|sp->life|
|000031d0| 53 70 61 6e 20 3d 3d 20 | 30 29 20 7b 0d 09 09 45 |Span == |0) {...E|
|000031e0| 78 70 6c 6f 64 65 53 70 | 72 69 74 65 28 73 70 2c |xplodeSp|rite(sp,|
|000031f0| 33 30 29 3b 0d 09 09 4e | 65 77 51 75 61 6b 65 28 |30);...N|ewQuake(|
|00003200| 29 3b 0d 09 09 72 65 74 | 75 72 6e 3b 0d 09 7d 0d |);...ret|urn;..}.|
|00003210| 0d 09 2f 2f 20 55 70 64 | 61 74 65 20 41 6e 69 6d |..// Upd|ate Anim|
|00003220| 61 74 69 6f 6e 20 46 72 | 61 6d 65 0d 09 73 70 2d |ation Fr|ame..sp-|
|00003230| 3e 74 69 63 6b 43 74 72 | 2b 2b 3b 0d 09 69 66 20 |>tickCtr|++;..if |
|00003240| 28 73 70 2d 3e 74 69 63 | 6b 43 74 72 20 3e 3d 20 |(sp->tic|kCtr >= |
|00003250| 73 70 2d 3e 61 6e 69 53 | 70 65 65 64 29 20 7b 0d |sp->aniS|peed) {.|
|00003260| 09 09 73 70 2d 3e 74 69 | 63 6b 43 74 72 20 3d 20 |..sp->ti|ckCtr = |
|00003270| 30 3b 0d 09 09 69 66 20 | 28 2b 2b 73 70 2d 3e 61 |0;...if |(++sp->a|
|00003280| 6e 69 53 74 61 74 65 20 | 3e 3d 20 73 44 65 66 5b |niState |>= sDef[|
|00003290| 73 70 2d 3e 74 79 70 65 | 5d 2e 6e 62 72 49 63 6f |sp->type|].nbrIco|
|000032a0| 6e 73 29 0d 09 09 09 73 | 70 2d 3e 61 6e 69 53 74 |ns)....s|p->aniSt|
|000032b0| 61 74 65 20 3d 20 30 3b | 0d 09 09 69 66 20 28 28 |ate = 0;|...if ((|
|000032c0| 73 70 2d 3e 61 6e 69 53 | 74 61 74 65 20 26 20 31 |sp->aniS|tate & 1|
|000032d0| 29 29 20 7b 0d 09 09 09 | 4c 6f 6e 67 50 6f 69 6e |)) {....|LongPoin|
|000032e0| 74 09 62 75 6c 6c 65 74 | 56 65 63 3b 0d 09 09 09 |t.bullet|Vec;....|
|000032f0| 69 66 20 28 67 53 68 69 | 70 20 26 26 20 67 53 68 |if (gShi|p && gSh|
|00003300| 69 70 2d 3e 74 79 70 65 | 20 3d 3d 20 53 54 5f 54 |ip->type| == ST_T|
|00003310| 65 61 70 6f 74 20 7c 7c | 20 67 53 68 69 70 2d 3e |eapot ||| gShip->|
|00003320| 74 79 70 65 20 3d 3d 20 | 53 54 5f 54 65 61 70 6f |type == |ST_Teapo|
|00003330| 74 54 29 20 7b 0d 09 09 | 09 09 64 6f 75 62 6c 65 |tT) {...|..double|
|00003340| 20 73 63 61 6c 65 3b 0d | 0d 09 09 09 09 62 75 6c | scale;.|.....bul|
|00003350| 6c 65 74 56 65 63 2e 6c | 68 20 3d 20 67 53 68 69 |letVec.l|h = gShi|
|00003360| 70 2d 3e 70 6f 73 2e 68 | 20 2d 20 73 70 2d 3e 70 |p->pos.h| - sp->p|
|00003370| 6f 73 2e 68 3b 0d 09 09 | 09 09 62 75 6c 6c 65 74 |os.h;...|..bullet|
|00003380| 56 65 63 2e 6c 76 20 3d | 20 67 53 68 69 70 2d 3e |Vec.lv =| gShip->|
|00003390| 70 6f 73 2e 76 2b 31 32 | 20 2d 20 73 70 2d 3e 70 |pos.v+12| - sp->p|
|000033a0| 6f 73 2e 76 3b 09 09 09 | 0d 09 09 09 09 73 63 61 |os.v;...|.....sca|
|000033b0| 6c 65 20 3d 20 31 2e 30 | 20 2f 20 73 71 72 74 28 |le = 1.0| / sqrt(|
|000033c0| 09 28 64 6f 75 62 6c 65 | 29 20 62 75 6c 6c 65 74 |.(double|) bullet|
|000033d0| 56 65 63 2e 6c 68 2a 62 | 75 6c 6c 65 74 56 65 63 |Vec.lh*b|ulletVec|
|000033e0| 2e 6c 68 20 2b 0d 09 09 | 09 09 09 09 62 75 6c 6c |.lh +...|....bull|
|000033f0| 65 74 56 65 63 2e 6c 76 | 2a 62 75 6c 6c 65 74 56 |etVec.lv|*bulletV|
|00003400| 65 63 2e 6c 76 29 3b 0d | 09 09 09 09 62 75 6c 6c |ec.lv);.|....bull|
|00003410| 65 74 56 65 63 2e 6c 68 | 20 2a 3d 20 73 63 61 6c |etVec.lh| *= scal|
|00003420| 65 20 2a 20 36 35 35 33 | 36 2e 30 3b 0d 09 09 09 |e * 6553|6.0;....|
|00003430| 09 62 75 6c 6c 65 74 56 | 65 63 2e 6c 76 20 2a 3d |.bulletV|ec.lv *=|
|00003440| 20 73 63 61 6c 65 20 2a | 20 36 35 35 33 36 2e 30 | scale *| 65536.0|
|00003450| 3b 0d 09 09 09 09 62 75 | 6c 6c 65 74 56 65 63 2e |;.....bu|lletVec.|
|00003460| 6c 68 20 3c 3c 3d 20 32 | 3b 0d 09 09 09 09 62 75 |lh <<= 2|;.....bu|
|00003470| 6c 6c 65 74 56 65 63 2e | 6c 76 20 3c 3c 3d 20 32 |lletVec.|lv <<= 2|
|00003480| 3b 0d 0d 09 09 09 09 73 | 70 2d 3e 76 65 63 74 6f |;......s|p->vecto|
|00003490| 72 20 3d 20 62 75 6c 6c | 65 74 56 65 63 3b 0d 09 |r = bull|etVec;..|
|000034a0| 09 09 7d 0d 09 09 7d 0d | 09 09 69 66 20 28 73 70 |..}...}.|..if (sp|
|000034b0| 2d 3e 61 6e 69 53 74 61 | 74 65 20 3d 3d 20 39 29 |->aniSta|te == 9)|
|000034c0| 20 7b 0d 09 09 09 09 4c | 61 75 6e 63 68 42 75 6c | {.....L|aunchBul|
|000034d0| 6c 65 74 28 53 54 5f 50 | 68 6f 74 6f 6e 2c 0d 09 |let(ST_P|hoton,..|
|000034e0| 09 09 09 09 09 09 20 73 | 70 2d 3e 70 6f 73 2e 68 |...... s|p->pos.h|
|000034f0| 2b 31 36 2c 73 70 2d 3e | 70 6f 73 2e 76 2b 31 36 |+16,sp->|pos.v+16|
|00003500| 2c 0d 09 09 09 09 09 09 | 09 20 73 70 2d 3e 76 65 |,.......|. sp->ve|
|00003510| 63 74 6f 72 2e 6c 68 20 | 3c 3c 20 32 2c 73 70 2d |ctor.lh |<< 2,sp-|
|00003520| 3e 76 65 63 74 6f 72 2e | 6c 76 20 3c 3c 20 32 2c |>vector.|lv << 2,|
|00003530| 0d 09 09 09 09 09 09 09 | 20 32 35 2c 0d 09 09 09 |........| 25,....|
|00003540| 09 09 09 09 20 42 46 5f | 42 61 64 42 75 6c 6c 65 |.... BF_|BadBulle|
|00003550| 74 29 3b 0d 0d 09 09 09 | 09 50 6c 61 79 53 6f 75 |t);.....|.PlaySou|
|00003560| 6e 64 28 53 5f 45 6e 65 | 6d 79 46 69 72 65 73 2c |nd(S_Ene|myFires,|
|00003570| 20 32 29 3b 0d 09 09 7d | 0d 09 7d 0d 7d 0d 0d 0d | 2);...}|..}.}...|
|00003580| 76 6f 69 64 20 53 68 69 | 70 4d 6f 76 65 28 72 65 |void Shi|pMove(re|
|00003590| 67 69 73 74 65 72 20 53 | 70 72 69 74 65 49 6e 73 |gister S|priteIns|
|000035a0| 74 61 6e 63 65 20 2a 73 | 70 29 0d 7b 0d 09 72 65 |tance *s|p).{..re|
|000035b0| 67 69 73 74 65 72 20 73 | 68 6f 72 74 20 6a 3b 0d |gister s|hort j;.|
|000035c0| 09 72 65 67 69 73 74 65 | 72 20 53 70 72 69 74 65 |.registe|r Sprite|
|000035d0| 49 6e 73 74 61 6e 63 65 | 20 2a 73 70 6a 3b 0d 09 |Instance| *spj;..|
|000035e0| 72 65 67 69 73 74 65 72 | 20 50 6f 69 6e 74 20 62 |register| Point b|
|000035f0| 50 6f 73 2c 74 50 6f 73 | 3b 0d 09 73 74 61 74 69 |Pos,tPos|;..stati|
|00003600| 63 20 50 6f 69 6e 74 20 | 66 69 72 69 6e 67 50 6f |c Point |firingPo|
|00003610| 73 5b 4d 61 78 41 6e 67 | 6c 65 73 2f 32 5d 20 3d |s[MaxAng|les/2] =|
|00003620| 20 0d 09 20 20 20 7b 34 | 2c 31 36 2c 09 35 2c 32 | .. {4|,16,.5,2|
|00003630| 31 2c 09 37 2c 32 35 2c | 09 31 30 2c 32 38 2c 09 |1,.7,25,|.10,28,.|
|00003640| 09 0d 09 20 20 20 20 31 | 33 2c 33 31 2c 09 31 38 |... 1|3,31,.18|
|00003650| 2c 33 30 2c 09 31 39 2c | 32 38 2c 09 32 33 2c 32 |,30,.19,|28,.23,2|
|00003660| 33 2c 0d 09 09 32 36 2c | 31 36 2c 09 32 34 2c 31 |3,...26,|16,.24,1|
|00003670| 31 2c 09 32 30 2c 34 2c | 09 31 38 2c 33 2c 0d 09 |1,.20,4,|.18,3,..|
|00003680| 09 31 33 2c 30 2c 09 31 | 30 2c 34 2c 09 38 2c 37 |.13,0,.1|0,4,.8,7|
|00003690| 2c 09 36 2c 31 32 7d 3b | 0d 09 09 0d 09 2f 2f 20 |,.6,12};|.....// |
|000036a0| 43 68 65 63 6b 20 66 6f | 72 20 43 6f 6c 6c 69 73 |Check fo|r Collis|
|000036b0| 69 6f 6e 0d 09 62 50 6f | 73 20 3d 20 73 70 2d 3e |ion..bPo|s = sp->|
|000036c0| 70 6f 73 3b 0d 09 66 6f | 72 20 28 6a 20 3d 20 30 |pos;..fo|r (j = 0|
|000036d0| 2c 73 70 6a 3d 73 54 61 | 62 6c 65 3b 20 6a 20 3c |,spj=sTa|ble; j <|
|000036e0| 20 67 4d 61 78 53 70 72 | 69 74 65 3b 20 2b 2b 6a | gMaxSpr|ite; ++j|
|000036f0| 2c 2b 2b 73 70 6a 29 20 | 7b 0d 09 09 74 50 6f 73 |,++spj) |{...tPos|
|00003700| 20 3d 20 73 70 6a 2d 3e | 70 6f 73 3b 0d 09 09 69 | = spj->|pos;...i|
|00003710| 66 20 28 73 70 6a 2d 3e | 61 63 74 69 76 65 20 26 |f (spj->|active &|
|00003720| 26 09 09 09 09 09 09 2f | 2f 20 41 63 74 69 76 65 |&....../|/ Active|
|00003730| 0d 09 09 09 62 50 6f 73 | 2e 68 2b 33 32 20 3e 20 |....bPos|.h+32 > |
|00003740| 74 50 6f 73 2e 68 20 26 | 26 09 09 09 09 2f 2f 20 |tPos.h &|&....// |
|00003750| 49 6e 20 52 61 6e 67 65 | 0d 09 09 09 62 50 6f 73 |In Range|....bPos|
|00003760| 2e 76 2b 33 32 20 3e 20 | 74 50 6f 73 2e 76 20 26 |.v+32 > |tPos.v &|
|00003770| 26 0d 09 09 09 62 50 6f | 73 2e 68 20 3c 20 74 50 |&....bPo|s.h < tP|
|00003780| 6f 73 2e 68 2b 33 32 20 | 26 26 0d 09 09 09 62 50 |os.h+32 |&&....bP|
|00003790| 6f 73 2e 76 20 3c 20 74 | 50 6f 73 2e 76 2b 33 32 |os.v < t|Pos.v+32|
|000037a0| 20 26 26 0d 09 09 09 28 | 42 46 5f 47 6f 6f 64 42 | &&....(|BF_GoodB|
|000037b0| 75 6c 6c 65 74 20 26 20 | 28 31 4c 20 3c 3c 20 73 |ullet & |(1L << s|
|000037c0| 70 6a 2d 3e 74 79 70 65 | 29 29 20 3e 20 30 29 09 |pj->type|)) > 0).|
|000037d0| 09 2f 2f 20 56 61 6c 69 | 64 20 54 61 72 67 65 74 |.// Vali|d Target|
|000037e0| 0d 09 09 7b 0d 09 09 09 | 72 65 67 69 73 74 65 72 |...{....|register|
|000037f0| 20 50 74 72 09 6d 70 32 | 2c 6d 70 31 3b 0d 09 09 | Ptr.mp2|,mp1;...|
|00003800| 09 72 65 67 69 73 74 65 | 72 20 73 68 6f 72 74 09 |.registe|r short.|
|00003810| 78 2c 79 3b 0d 09 09 09 | 52 65 63 74 09 09 09 72 |x,y;....|Rect...r|
|00003820| 3b 0d 09 09 09 72 2e 6c | 65 66 74 20 3d 20 6d 61 |;....r.l|eft = ma|
|00003830| 78 28 62 50 6f 73 2e 68 | 2c 74 50 6f 73 2e 68 29 |x(bPos.h|,tPos.h)|
|00003840| 3b 0d 09 09 09 72 2e 74 | 6f 70 20 3d 20 6d 61 78 |;....r.t|op = max|
|00003850| 28 62 50 6f 73 2e 76 2c | 74 50 6f 73 2e 76 29 3b |(bPos.v,|tPos.v);|
|00003860| 0d 09 09 09 72 2e 72 69 | 67 68 74 20 3d 20 6d 69 |....r.ri|ght = mi|
|00003870| 6e 28 62 50 6f 73 2e 68 | 2b 33 32 2c 74 50 6f 73 |n(bPos.h|+32,tPos|
|00003880| 2e 68 2b 33 32 29 3b 0d | 09 09 09 72 2e 62 6f 74 |.h+32);.|...r.bot|
|00003890| 74 6f 6d 20 3d 20 6d 69 | 6e 28 62 50 6f 73 2e 76 |tom = mi|n(bPos.v|
|000038a0| 2b 33 32 2c 74 50 6f 73 | 2e 76 2b 33 32 29 3b 0d |+32,tPos|.v+32);.|
|000038b0| 09 09 09 6d 70 31 20 3d | 20 73 44 65 66 5b 73 70 |...mp1 =| sDef[sp|
|000038c0| 2d 3e 74 79 70 65 5d 2e | 6d 61 73 6b 4d 61 70 73 |->type].|maskMaps|
|000038d0| 20 2b 20 41 6e 69 46 72 | 61 6d 65 49 6e 64 65 78 | + AniFr|ameIndex|
|000038e0| 28 73 70 2d 3e 61 6e 69 | 53 74 61 74 65 29 3b 0d |(sp->ani|State);.|
|000038f0| 09 09 09 6d 70 32 20 3d | 20 73 44 65 66 5b 73 70 |...mp2 =| sDef[sp|
|00003900| 6a 2d 3e 74 79 70 65 5d | 2e 6d 61 73 6b 4d 61 70 |j->type]|.maskMap|
|00003910| 73 20 2b 20 41 6e 69 46 | 72 61 6d 65 49 6e 64 65 |s + AniF|rameInde|
|00003920| 78 28 73 70 6a 2d 3e 61 | 6e 69 53 74 61 74 65 29 |x(spj->a|niState)|
|00003930| 3b 0d 09 09 09 66 6f 72 | 20 28 79 20 3d 20 72 2e |;....for| (y = r.|
|00003940| 74 6f 70 3b 20 79 20 3c | 20 72 2e 62 6f 74 74 6f |top; y <| r.botto|
|00003950| 6d 3b 20 2b 2b 79 29 20 | 7b 0d 09 09 09 09 66 6f |m; ++y) |{.....fo|
|00003960| 72 20 28 78 20 3d 20 72 | 2e 6c 65 66 74 3b 20 78 |r (x = r|.left; x|
|00003970| 20 3c 20 72 2e 72 69 67 | 68 74 3b 20 2b 2b 78 29 | < r.rig|ht; ++x)|
|00003980| 20 7b 0d 09 09 09 09 09 | 69 66 20 28 21 6d 70 32 | {......|if (!mp2|
|00003990| 5b 28 78 20 2d 20 62 50 | 6f 73 2e 68 29 2b 41 6e |[(x - bP|os.h)+An|
|000039a0| 69 52 6f 77 49 6e 64 65 | 78 28 28 79 20 2d 20 62 |iRowInde|x((y - b|
|000039b0| 50 6f 73 2e 76 29 29 5d | 20 26 26 0d 09 09 09 09 |Pos.v))]| &&.....|
|000039c0| 09 09 21 6d 70 32 5b 28 | 78 20 2d 20 74 50 6f 73 |..!mp2[(|x - tPos|
|000039d0| 2e 68 29 2b 41 6e 69 52 | 6f 77 49 6e 64 65 78 28 |.h)+AniR|owIndex(|
|000039e0| 28 79 20 2d 20 74 50 6f | 73 2e 76 29 29 5d 29 09 |(y - tPo|s.v))]).|
|000039f0| 0d 09 09 09 09 09 09 67 | 6f 74 6f 20 43 6f 6c 6c |.......g|oto Coll|
|00003a00| 69 73 69 6f 6e 3b 0d 09 | 09 09 09 7d 0d 09 09 09 |ision;..|...}....|
|00003a10| 7d 0d 09 09 7d 0d 09 7d | 0d 0d 09 69 66 20 28 73 |}...}..}|...if (s|
|00003a20| 70 2d 3e 70 61 72 61 6d | 31 20 26 20 53 46 5f 4c |p->param|1 & SF_L|
|00003a30| 65 66 74 29 20 7b 0d 09 | 09 73 70 2d 3e 61 6e 67 |eft) {..|.sp->ang|
|00003a40| 6c 65 20 2d 3d 20 32 3b | 0d 09 09 69 66 20 28 73 |le -= 2;|...if (s|
|00003a50| 70 2d 3e 61 6e 67 6c 65 | 20 3c 20 30 29 0d 09 09 |p->angle| < 0)...|
|00003a60| 09 73 70 2d 3e 61 6e 67 | 6c 65 20 3d 20 4d 61 78 |.sp->ang|le = Max|
|00003a70| 41 6e 67 6c 65 73 2d 32 | 3b 0d 09 7d 0d 09 65 6c |Angles-2|;..}..el|
|00003a80| 73 65 20 69 66 20 28 73 | 70 2d 3e 70 61 72 61 6d |se if (s|p->param|
|00003a90| 31 20 26 20 53 46 5f 52 | 69 67 68 74 29 20 7b 0d |1 & SF_R|ight) {.|
|00003aa0| 09 09 73 70 2d 3e 61 6e | 67 6c 65 20 2b 3d 20 32 |..sp->an|gle += 2|
|00003ab0| 3b 0d 09 09 69 66 20 28 | 73 70 2d 3e 61 6e 67 6c |;...if (|sp->angl|
|00003ac0| 65 20 3e 3d 20 4d 61 78 | 41 6e 67 6c 65 73 29 0d |e >= Max|Angles).|
|00003ad0| 09 09 09 73 70 2d 3e 61 | 6e 67 6c 65 20 3d 20 30 |...sp->a|ngle = 0|
|00003ae0| 3b 0d 09 7d 0d 0d 09 2f | 2f 20 55 70 64 61 74 65 |;..}.../|/ Update|
|00003af0| 20 41 6e 69 6d 61 74 69 | 6f 6e 20 46 72 61 6d 65 | Animati|on Frame|
|00003b00| 0d 09 73 70 2d 3e 61 6e | 69 53 74 61 74 65 20 3d |..sp->an|iState =|
|00003b10| 20 73 70 2d 3e 61 6e 67 | 6c 65 20 3e 3e 20 31 3b | sp->ang|le >> 1;|
|00003b20| 0d 0d 0d 09 69 66 20 28 | 73 70 2d 3e 70 61 72 61 |....if (|sp->para|
|00003b30| 6d 31 20 26 20 53 46 5f | 54 68 72 75 73 74 29 20 |m1 & SF_|Thrust) |
|00003b40| 7b 0d 09 09 73 70 2d 3e | 76 65 63 74 6f 72 2e 6c |{...sp->|vector.l|
|00003b50| 68 20 2b 3d 20 76 65 63 | 54 61 62 6c 65 5b 73 70 |h += vec|Table[sp|
|00003b60| 2d 3e 61 6e 67 6c 65 5d | 2e 6c 68 3b 0d 09 09 73 |->angle]|.lh;...s|
|00003b70| 70 2d 3e 76 65 63 74 6f | 72 2e 6c 76 20 2b 3d 20 |p->vecto|r.lv += |
|00003b80| 76 65 63 54 61 62 6c 65 | 5b 73 70 2d 3e 61 6e 67 |vecTable|[sp->ang|
|00003b90| 6c 65 5d 2e 6c 76 3b 0d | 09 09 69 66 20 28 73 70 |le].lv;.|..if (sp|
|00003ba0| 2d 3e 74 79 70 65 20 21 | 3d 20 53 54 5f 54 65 61 |->type !|= ST_Tea|
|00003bb0| 70 6f 74 54 29 20 7b 0d | 09 09 09 73 70 2d 3e 74 |potT) {.|...sp->t|
|00003bc0| 79 70 65 20 3d 20 53 54 | 5f 54 65 61 70 6f 74 54 |ype = ST|_TeapotT|
|00003bd0| 3b 0d 09 09 09 50 6c 61 | 79 53 6f 75 6e 64 28 53 |;....Pla|ySound(S|
|00003be0| 5f 54 68 72 75 73 74 2c | 20 31 29 3b 0d 09 09 7d |_Thrust,| 1);...}|
|00003bf0| 0d 09 7d 0d 09 65 6c 73 | 65 20 69 66 20 28 73 70 |..}..els|e if (sp|
|00003c00| 2d 3e 70 61 72 61 6d 31 | 20 26 20 53 46 5f 53 68 |->param1| & SF_Sh|
|00003c10| 69 65 6c 64 29 20 7b 0d | 09 09 69 66 20 28 73 70 |ield) {.|..if (sp|
|00003c20| 2d 3e 74 79 70 65 20 21 | 3d 20 53 54 5f 54 65 61 |->type !|= ST_Tea|
|00003c30| 70 6f 74 53 29 20 7b 0d | 09 09 09 73 70 2d 3e 74 |potS) {.|...sp->t|
|00003c40| 79 70 65 20 3d 20 53 54 | 5f 54 65 61 70 6f 74 53 |ype = ST|_TeapotS|
|00003c50| 3b 0d 09 09 09 50 6c 61 | 79 53 6f 75 6e 64 28 53 |;....Pla|ySound(S|
|00003c60| 5f 53 68 69 65 6c 64 2c | 20 31 29 3b 0d 09 09 7d |_Shield,| 1);...}|
|00003c70| 0d 09 7d 0d 09 65 6c 73 | 65 0d 09 09 73 70 2d 3e |..}..els|e...sp->|
|00003c80| 74 79 70 65 20 3d 20 53 | 54 5f 54 65 61 70 6f 74 |type = S|T_Teapot|
|00003c90| 3b 0d 09 0d 0d 09 69 66 | 20 28 73 70 2d 3e 70 61 |;.....if| (sp->pa|
|00003ca0| 72 61 6d 31 20 26 20 53 | 46 5f 46 69 72 65 29 20 |ram1 & S|F_Fire) |
|00003cb0| 7b 0d 09 09 4c 61 75 6e | 63 68 42 75 6c 6c 65 74 |{...Laun|chBullet|
|00003cc0| 28 09 53 54 5f 42 75 6c | 6c 65 74 2c 0d 09 09 09 |(.ST_Bul|let,....|
|00003cd0| 09 09 09 62 50 6f 73 2e | 68 2b 66 69 72 69 6e 67 |...bPos.|h+firing|
|00003ce0| 50 6f 73 5b 73 70 2d 3e | 61 6e 69 53 74 61 74 65 |Pos[sp->|aniState|
|00003cf0| 5d 2e 68 2c 0d 09 09 09 | 09 09 09 62 50 6f 73 2e |].h,....|...bPos.|
|00003d00| 76 2b 66 69 72 69 6e 67 | 50 6f 73 5b 73 70 2d 3e |v+firing|Pos[sp->|
|00003d10| 61 6e 69 53 74 61 74 65 | 5d 2e 76 2c 0d 09 09 09 |aniState|].v,....|
|00003d20| 09 09 09 73 70 2d 3e 76 | 65 63 74 6f 72 2e 6c 68 |...sp->v|ector.lh|
|00003d30| 20 2b 20 28 76 65 63 54 | 61 62 6c 65 5b 73 70 2d | + (vecT|able[sp-|
|00003d40| 3e 61 6e 67 6c 65 5d 2e | 6c 68 20 3c 3c 20 33 29 |>angle].|lh << 3)|
|00003d50| 2c 0d 09 09 09 09 09 09 | 73 70 2d 3e 76 65 63 74 |,.......|sp->vect|
|00003d60| 6f 72 2e 6c 76 20 2b 20 | 28 76 65 63 54 61 62 6c |or.lv + |(vecTabl|
|00003d70| 65 5b 73 70 2d 3e 61 6e | 67 6c 65 5d 2e 6c 76 20 |e[sp->an|gle].lv |
|00003d80| 3c 3c 20 33 29 2c 0d 09 | 09 09 09 09 09 32 35 2c |<< 3),..|.....25,|
|00003d90| 0d 09 09 09 09 09 09 42 | 46 5f 47 6f 6f 64 42 75 |.......B|F_GoodBu|
|00003da0| 6c 6c 65 74 29 3b 0d 09 | 09 69 66 20 28 67 53 68 |llet);..|.if (gSh|
|00003db0| 69 70 4d 6f 64 65 20 26 | 20 53 4d 5f 54 72 69 70 |ipMode &| SM_Trip|
|00003dc0| 6c 65 29 20 7b 0d 09 09 | 09 4c 61 75 6e 63 68 42 |le) {...|.LaunchB|
|00003dd0| 75 6c 6c 65 74 28 09 53 | 54 5f 42 75 6c 6c 65 74 |ullet(.S|T_Bullet|
|00003de0| 2c 0d 09 09 09 09 09 09 | 09 62 50 6f 73 2e 68 2b |,.......|.bPos.h+|
|00003df0| 66 69 72 69 6e 67 50 6f | 73 5b 73 70 2d 3e 61 6e |firingPo|s[sp->an|
|00003e00| 69 53 74 61 74 65 5d 2e | 68 2c 0d 09 09 09 09 09 |iState].|h,......|
|00003e10| 09 09 62 50 6f 73 2e 76 | 2b 66 69 72 69 6e 67 50 |..bPos.v|+firingP|
|00003e20| 6f 73 5b 73 70 2d 3e 61 | 6e 69 53 74 61 74 65 5d |os[sp->a|niState]|
|00003e30| 2e 76 2c 0d 09 09 09 09 | 09 09 09 73 70 2d 3e 76 |.v,.....|...sp->v|
|00003e40| 65 63 74 6f 72 2e 6c 68 | 20 2b 20 28 76 65 63 54 |ector.lh| + (vecT|
|00003e50| 61 62 6c 65 5b 28 73 70 | 2d 3e 61 6e 67 6c 65 2b |able[(sp|->angle+|
|00003e60| 4d 61 78 41 6e 67 6c 65 | 73 2d 31 29 25 4d 61 78 |MaxAngle|s-1)%Max|
|00003e70| 41 6e 67 6c 65 73 5d 2e | 6c 68 20 3c 3c 20 33 29 |Angles].|lh << 3)|
|00003e80| 2c 0d 09 09 09 09 09 09 | 09 73 70 2d 3e 76 65 63 |,.......|.sp->vec|
|00003e90| 74 6f 72 2e 6c 76 20 2b | 20 28 76 65 63 54 61 62 |tor.lv +| (vecTab|
|00003ea0| 6c 65 5b 28 73 70 2d 3e | 61 6e 67 6c 65 2b 4d 61 |le[(sp->|angle+Ma|
|00003eb0| 78 41 6e 67 6c 65 73 2d | 31 29 25 4d 61 78 41 6e |xAngles-|1)%MaxAn|
|00003ec0| 67 6c 65 73 5d 2e 6c 76 | 20 3c 3c 20 33 29 2c 0d |gles].lv| << 3),.|
|00003ed0| 09 09 09 09 09 09 09 32 | 35 2c 0d 09 09 09 09 09 |.......2|5,......|
|00003ee0| 09 09 42 46 5f 47 6f 6f | 64 42 75 6c 6c 65 74 29 |..BF_Goo|dBullet)|
|00003ef0| 3b 0d 09 09 09 4c 61 75 | 6e 63 68 42 75 6c 6c 65 |;....Lau|nchBulle|
|00003f00| 74 28 09 53 54 5f 42 75 | 6c 6c 65 74 2c 0d 09 09 |t(.ST_Bu|llet,...|
|00003f10| 09 09 09 09 09 62 50 6f | 73 2e 68 2b 66 69 72 69 |.....bPo|s.h+firi|
|00003f20| 6e 67 50 6f 73 5b 73 70 | 2d 3e 61 6e 69 53 74 61 |ngPos[sp|->aniSta|
|00003f30| 74 65 5d 2e 68 2c 0d 09 | 09 09 09 09 09 09 62 50 |te].h,..|......bP|
|00003f40| 6f 73 2e 76 2b 66 69 72 | 69 6e 67 50 6f 73 5b 73 |os.v+fir|ingPos[s|
|00003f50| 70 2d 3e 61 6e 69 53 74 | 61 74 65 5d 2e 76 2c 0d |p->aniSt|ate].v,.|
|00003f60| 09 09 09 09 09 09 09 73 | 70 2d 3e 76 65 63 74 6f |.......s|p->vecto|
|00003f70| 72 2e 6c 68 20 2b 20 28 | 76 65 63 54 61 62 6c 65 |r.lh + (|vecTable|
|00003f80| 5b 28 73 70 2d 3e 61 6e | 67 6c 65 2b 4d 61 78 41 |[(sp->an|gle+MaxA|
|00003f90| 6e 67 6c 65 73 2b 31 29 | 25 4d 61 78 41 6e 67 6c |ngles+1)|%MaxAngl|
|00003fa0| 65 73 5d 2e 6c 68 20 3c | 3c 20 33 29 2c 0d 09 09 |es].lh <|< 3),...|
|00003fb0| 09 09 09 09 09 73 70 2d | 3e 76 65 63 74 6f 72 2e |.....sp-|>vector.|
|00003fc0| 6c 76 20 2b 20 28 76 65 | 63 54 61 62 6c 65 5b 28 |lv + (ve|cTable[(|
|00003fd0| 73 70 2d 3e 61 6e 67 6c | 65 2b 4d 61 78 41 6e 67 |sp->angl|e+MaxAng|
|00003fe0| 6c 65 73 2b 31 29 25 4d | 61 78 41 6e 67 6c 65 73 |les+1)%M|axAngles|
|00003ff0| 5d 2e 6c 76 20 3c 3c 20 | 33 29 2c 0d 09 09 09 09 |].lv << |3),.....|
|00004000| 09 09 09 32 35 2c 0d 09 | 09 09 09 09 09 09 42 46 |...25,..|......BF|
|00004010| 5f 47 6f 6f 64 42 75 6c | 6c 65 74 29 3b 0d 09 09 |_GoodBul|let);...|
|00004020| 7d 0d 09 09 50 6c 61 79 | 53 6f 75 6e 64 28 53 5f |}...Play|Sound(S_|
|00004030| 46 69 72 69 6e 67 2c 20 | 31 29 3b 0d 09 7d 0d 09 |Firing, |1);..}..|
|00004040| 0d 09 2f 2f 20 55 70 64 | 61 74 65 20 70 6f 73 69 |..// Upd|ate posi|
|00004050| 74 69 6f 6e 0d 09 73 70 | 2d 3e 70 6f 73 2e 68 20 |tion..sp|->pos.h |
|00004060| 2b 3d 20 28 73 70 2d 3e | 76 65 63 74 6f 72 2e 6c |+= (sp->|vector.l|
|00004070| 68 20 3e 3e 20 31 36 29 | 3b 0d 09 73 70 2d 3e 70 |h >> 16)|;..sp->p|
|00004080| 6f 73 2e 76 20 2b 3d 20 | 28 73 70 2d 3e 76 65 63 |os.v += |(sp->vec|
|00004090| 74 6f 72 2e 6c 76 20 3e | 3e 20 31 36 29 3b 0d 09 |tor.lv >|> 16);..|
|000040a0| 69 66 20 28 73 70 2d 3e | 70 6f 73 2e 68 20 3c 20 |if (sp->|pos.h < |
|000040b0| 67 50 6c 61 79 52 65 63 | 74 2e 6c 65 66 74 29 0d |gPlayRec|t.left).|
|000040c0| 09 09 73 70 2d 3e 70 6f | 73 2e 68 20 2b 3d 20 67 |..sp->po|s.h += g|
|000040d0| 50 6c 61 79 57 69 64 74 | 68 3b 0d 09 69 66 20 28 |PlayWidt|h;..if (|
|000040e0| 73 70 2d 3e 70 6f 73 2e | 76 20 3c 20 67 50 6c 61 |sp->pos.|v < gPla|
|000040f0| 79 52 65 63 74 2e 74 6f | 70 29 0d 09 09 73 70 2d |yRect.to|p)...sp-|
|00004100| 3e 70 6f 73 2e 76 20 2b | 3d 20 67 50 6c 61 79 48 |>pos.v +|= gPlayH|
|00004110| 65 69 67 68 74 3b 0d 09 | 69 66 20 28 73 70 2d 3e |eight;..|if (sp->|
|00004120| 70 6f 73 2e 68 20 3e 20 | 67 50 6c 61 79 52 65 63 |pos.h > |gPlayRec|
|00004130| 74 2e 72 69 67 68 74 29 | 0d 09 09 73 70 2d 3e 70 |t.right)|...sp->p|
|00004140| 6f 73 2e 68 20 2d 3d 20 | 67 50 6c 61 79 57 69 64 |os.h -= |gPlayWid|
|00004150| 74 68 3b 0d 09 69 66 20 | 28 73 70 2d 3e 70 6f 73 |th;..if |(sp->pos|
|00004160| 2e 76 20 3e 20 67 50 6c | 61 79 52 65 63 74 2e 62 |.v > gPl|ayRect.b|
|00004170| 6f 74 74 6f 6d 29 0d 09 | 09 73 70 2d 3e 70 6f 73 |ottom)..|.sp->pos|
|00004180| 2e 76 20 2d 3d 20 67 50 | 6c 61 79 48 65 69 67 68 |.v -= gP|layHeigh|
|00004190| 74 3b 0d 0d 09 73 70 2d | 3e 74 69 63 6b 43 74 72 |t;...sp-|>tickCtr|
|000041a0| 2b 2b 3b 0d 09 73 70 2d | 3e 70 61 72 61 6d 31 20 |++;..sp-|>param1 |
|000041b0| 26 3d 20 7e 53 46 5f 46 | 69 72 65 3b 0d 09 72 65 |&= ~SF_F|ire;..re|
|000041c0| 74 75 72 6e 3b 0d 43 6f | 6c 6c 69 73 69 6f 6e 3a |turn;.Co|llision:|
|000041d0| 0d 09 69 66 20 28 21 28 | 73 70 2d 3e 70 61 72 61 |..if (!(|sp->para|
|000041e0| 6d 31 20 26 20 53 46 5f | 53 68 69 65 6c 64 29 20 |m1 & SF_|Shield) |
|000041f0| 26 26 0d 09 09 73 70 6a | 2d 3e 74 79 70 65 20 21 |&&...spj|->type !|
|00004200| 3d 20 53 54 5f 59 75 6d | 6d 69 65 73 29 20 7b 0d |= ST_Yum|mies) {.|
|00004210| 09 09 45 78 70 6c 6f 64 | 65 53 70 72 69 74 65 28 |..Explod|eSprite(|
|00004220| 73 70 2c 33 30 29 3b 0d | 09 09 4e 65 77 53 68 69 |sp,30);.|..NewShi|
|00004230| 70 28 29 3b 0d 09 7d 0d | 0d 09 73 77 69 74 63 68 |p();..}.|..switch|
|00004240| 20 28 73 70 6a 2d 3e 74 | 79 70 65 29 20 7b 0d 09 | (spj->t|ype) {..|
|00004250| 63 61 73 65 20 53 54 5f | 57 68 65 65 6c 3a 0d 09 |case ST_|Wheel:..|
|00004260| 09 4e 65 77 53 75 62 41 | 73 74 65 72 6f 69 64 28 |.NewSubA|steroid(|
|00004270| 6a 2c 53 54 5f 57 68 65 | 65 6c 52 2c 2d 32 29 3b |j,ST_Whe|elR,-2);|
|00004280| 0d 09 09 4e 65 77 53 75 | 62 41 73 74 65 72 6f 69 |...NewSu|bAsteroi|
|00004290| 64 28 6a 2c 53 54 5f 57 | 68 65 65 6c 47 2c 30 29 |d(j,ST_W|heelG,0)|
|000042a0| 3b 0d 09 09 4e 65 77 53 | 75 62 41 73 74 65 72 6f |;...NewS|ubAstero|
|000042b0| 69 64 28 6a 2c 53 54 5f | 57 68 65 65 6c 42 2c 32 |id(j,ST_|WheelB,2|
|000042c0| 29 3b 0d 09 09 2d 2d 67 | 41 73 74 65 72 6f 69 64 |);...--g|Asteroid|
|000042d0| 43 6e 74 3b 0d 09 09 4b | 69 6c 6c 53 70 72 69 74 |Cnt;...K|illSprit|
|000042e0| 65 28 73 70 6a 29 3b 0d | 09 09 50 6c 61 79 53 6f |e(spj);.|..PlaySo|
|000042f0| 75 6e 64 28 53 5f 43 6f | 6d 70 6f 75 6e 64 46 72 |und(S_Co|mpoundFr|
|00004300| 61 63 74 75 72 65 2c 20 | 32 29 3b 0d 09 09 62 72 |acture, |2);...br|
|00004310| 65 61 6b 3b 0d 09 63 61 | 73 65 20 53 54 5f 41 73 |eak;..ca|se ST_As|
|00004320| 74 65 72 3a 0d 09 09 4e | 65 77 53 75 62 41 73 74 |ter:...N|ewSubAst|
|00004330| 65 72 6f 69 64 28 6a 2c | 53 54 5f 41 73 74 65 72 |eroid(j,|ST_Aster|
|00004340| 31 2c 2d 32 29 3b 0d 09 | 09 4e 65 77 53 75 62 41 |1,-2);..|.NewSubA|
|00004350| 73 74 65 72 6f 69 64 28 | 6a 2c 53 54 5f 41 73 74 |steroid(|j,ST_Ast|
|00004360| 65 72 32 2c 32 29 3b 0d | 09 09 2d 2d 67 41 73 74 |er2,2);.|..--gAst|
|00004370| 65 72 6f 69 64 43 6e 74 | 3b 0d 09 09 4b 69 6c 6c |eroidCnt|;...Kill|
|00004380| 53 70 72 69 74 65 28 73 | 70 6a 29 3b 0d 09 09 50 |Sprite(s|pj);...P|
|00004390| 6c 61 79 53 6f 75 6e 64 | 28 53 5f 43 6f 6d 70 6f |laySound|(S_Compo|
|000043a0| 75 6e 64 46 72 61 63 74 | 75 72 65 2c 20 32 29 3b |undFract|ure, 2);|
|000043b0| 0d 09 09 62 72 65 61 6b | 3b 0d 09 63 61 73 65 20 |...break|;..case |
|000043c0| 53 54 5f 57 68 65 65 6c | 52 3a 0d 09 63 61 73 65 |ST_Wheel|R:..case|
|000043d0| 20 53 54 5f 57 68 65 65 | 6c 47 3a 0d 09 63 61 73 | ST_Whee|lG:..cas|
|000043e0| 65 20 53 54 5f 57 68 65 | 65 6c 42 3a 0d 09 63 61 |e ST_Whe|elB:..ca|
|000043f0| 73 65 20 53 54 5f 41 73 | 74 65 72 31 3a 0d 09 63 |se ST_As|ter1:..c|
|00004400| 61 73 65 20 53 54 5f 41 | 73 74 65 72 32 3a 0d 09 |ase ST_A|ster2:..|
|00004410| 63 61 73 65 20 53 54 5f | 54 65 61 63 75 70 3a 0d |case ST_|Teacup:.|
|00004420| 09 63 61 73 65 20 53 54 | 5f 4a 69 6d 3a 0d 09 09 |.case ST|_Jim:...|
|00004430| 2d 2d 67 41 73 74 65 72 | 6f 69 64 43 6e 74 3b 0d |--gAster|oidCnt;.|
|00004440| 09 09 45 78 70 6c 6f 64 | 65 53 70 72 69 74 65 28 |..Explod|eSprite(|
|00004450| 73 70 6a 2c 31 30 29 3b | 0d 09 09 62 72 65 61 6b |spj,10);|...break|
|00004460| 3b 0d 09 63 61 73 65 20 | 53 54 5f 59 75 6d 6d 69 |;..case |ST_Yummi|
|00004470| 65 73 3a 0d 09 09 43 6f | 6e 73 75 6d 65 59 75 6d |es:...Co|nsumeYum|
|00004480| 6d 79 28 73 70 6a 29 3b | 0d 09 09 62 72 65 61 6b |my(spj);|...break|
|00004490| 3b 0d 09 63 61 73 65 20 | 53 54 5f 53 61 75 63 65 |;..case |ST_Sauce|
|000044a0| 72 3a 0d 09 09 45 78 70 | 6c 6f 64 65 53 70 72 69 |r:...Exp|lodeSpri|
|000044b0| 74 65 28 73 70 6a 2c 31 | 30 29 3b 0d 09 09 62 72 |te(spj,1|0);...br|
|000044c0| 65 61 6b 3b 0d 09 63 61 | 73 65 20 53 54 5f 42 61 |eak;..ca|se ST_Ba|
|000044d0| 72 62 65 6c 6c 3a 0d 09 | 09 45 78 70 6c 6f 64 65 |rbell:..|.Explode|
|000044e0| 53 70 72 69 74 65 28 73 | 70 6a 2c 31 30 29 3b 0d |Sprite(s|pj,10);.|
|000044f0| 09 09 62 72 65 61 6b 3b | 0d 09 63 61 73 65 20 53 |..break;|..case S|
|00004500| 54 5f 43 75 62 65 3a 0d | 09 09 45 78 70 6c 6f 64 |T_Cube:.|..Explod|
|00004510| 65 53 70 72 69 74 65 28 | 73 70 6a 2c 31 30 29 3b |eSprite(|spj,10);|
|00004520| 0d 09 09 62 72 65 61 6b | 3b 0d 09 7d 0d 7d 0d 0d |...break|;..}.}..|
|00004530| 76 6f 69 64 20 42 75 6c | 6c 65 74 4d 6f 76 65 28 |void Bul|letMove(|
|00004540| 72 65 67 69 73 74 65 72 | 20 53 70 72 69 74 65 49 |register| SpriteI|
|00004550| 6e 73 74 61 6e 63 65 20 | 2a 73 70 29 0d 7b 0d 09 |nstance |*sp).{..|
|00004560| 72 65 67 69 73 74 65 72 | 20 73 68 6f 72 74 20 6a |register| short j|
|00004570| 2c 6e 3b 0d 09 72 65 67 | 69 73 74 65 72 20 53 70 |,n;..reg|ister Sp|
|00004580| 72 69 74 65 49 6e 73 74 | 61 6e 63 65 20 2a 73 70 |riteInst|ance *sp|
|00004590| 6a 3b 0d 09 72 65 67 69 | 73 74 65 72 20 50 6f 69 |j;..regi|ster Poi|
|000045a0| 6e 74 09 62 50 6f 73 2c | 74 50 6f 73 3b 0d 0d 09 |nt.bPos,|tPos;...|
|000045b0| 2f 2f 20 55 70 64 61 74 | 65 20 70 6f 73 69 74 69 |// Updat|e positi|
|000045c0| 6f 6e 0d 09 73 70 2d 3e | 70 6f 73 2e 68 20 2b 3d |on..sp->|pos.h +=|
|000045d0| 20 28 73 70 2d 3e 76 65 | 63 74 6f 72 2e 6c 68 20 | (sp->ve|ctor.lh |
|000045e0| 3e 3e 20 31 36 29 3b 0d | 09 73 70 2d 3e 70 6f 73 |>> 16);.|.sp->pos|
|000045f0| 2e 76 20 2b 3d 20 28 73 | 70 2d 3e 76 65 63 74 6f |.v += (s|p->vecto|
|00004600| 72 2e 6c 76 20 3e 3e 20 | 31 36 29 3b 0d 09 69 66 |r.lv >> |16);..if|
|00004610| 20 28 73 70 2d 3e 70 6f | 73 2e 68 20 3c 20 67 50 | (sp->po|s.h < gP|
|00004620| 6c 61 79 52 65 63 74 2e | 6c 65 66 74 29 0d 09 09 |layRect.|left)...|
|00004630| 73 70 2d 3e 70 6f 73 2e | 68 20 2b 3d 20 67 50 6c |sp->pos.|h += gPl|
|00004640| 61 79 57 69 64 74 68 3b | 0d 09 69 66 20 28 73 70 |ayWidth;|..if (sp|
|00004650| 2d 3e 70 6f 73 2e 76 20 | 3c 20 67 50 6c 61 79 52 |->pos.v |< gPlayR|
|00004660| 65 63 74 2e 74 6f 70 29 | 0d 09 09 73 70 2d 3e 70 |ect.top)|...sp->p|
|00004670| 6f 73 2e 76 20 2b 3d 20 | 67 50 6c 61 79 48 65 69 |os.v += |gPlayHei|
|00004680| 67 68 74 3b 0d 09 69 66 | 20 28 73 70 2d 3e 70 6f |ght;..if| (sp->po|
|00004690| 73 2e 68 20 3e 20 67 50 | 6c 61 79 52 65 63 74 2e |s.h > gP|layRect.|
|000046a0| 72 69 67 68 74 29 0d 09 | 09 73 70 2d 3e 70 6f 73 |right)..|.sp->pos|
|000046b0| 2e 68 20 2d 3d 20 67 50 | 6c 61 79 57 69 64 74 68 |.h -= gP|layWidth|
|000046c0| 3b 0d 09 69 66 20 28 73 | 70 2d 3e 70 6f 73 2e 76 |;..if (s|p->pos.v|
|000046d0| 20 3e 20 67 50 6c 61 79 | 52 65 63 74 2e 62 6f 74 | > gPlay|Rect.bot|
|000046e0| 74 6f 6d 29 0d 09 09 73 | 70 2d 3e 70 6f 73 2e 76 |tom)...s|p->pos.v|
|000046f0| 20 2d 3d 20 67 50 6c 61 | 79 48 65 69 67 68 74 3b | -= gPla|yHeight;|
|00004700| 0d 0d 09 2f 2f 20 55 70 | 64 61 74 65 20 41 6e 69 |...// Up|date Ani|
|00004710| 6d 61 74 69 6f 6e 20 46 | 72 61 6d 65 0d 09 69 66 |mation F|rame..if|
|00004720| 20 28 2d 2d 73 70 2d 3e | 6c 69 66 65 53 70 61 6e | (--sp->|lifeSpan|
|00004730| 20 3d 3d 20 30 29 20 7b | 0d 09 09 4b 69 6c 6c 53 | == 0) {|...KillS|
|00004740| 70 72 69 74 65 28 73 70 | 29 3b 0d 09 09 72 65 74 |prite(sp|);...ret|
|00004750| 75 72 6e 3b 0d 09 7d 0d | 09 2f 2f 20 43 68 65 63 |urn;..}.|.// Chec|
|00004760| 6b 20 66 6f 72 20 43 6f | 6c 6c 69 73 69 6f 6e 0d |k for Co|llision.|
|00004770| 09 62 50 6f 73 20 3d 20 | 73 70 2d 3e 70 6f 73 3b |.bPos = |sp->pos;|
|00004780| 0d 09 6e 20 3d 20 67 4d | 61 78 53 70 72 69 74 65 |..n = gM|axSprite|
|00004790| 3b 0d 09 66 6f 72 20 28 | 6a 20 3d 20 30 2c 73 70 |;..for (|j = 0,sp|
|000047a0| 6a 3d 73 54 61 62 6c 65 | 3b 20 6a 20 3c 20 6e 3b |j=sTable|; j < n;|
|000047b0| 20 2b 2b 6a 2c 2b 2b 73 | 70 6a 29 20 7b 0d 09 09 | ++j,++s|pj) {...|
|000047c0| 74 50 6f 73 20 3d 20 73 | 70 6a 2d 3e 70 6f 73 3b |tPos = s|pj->pos;|
|000047d0| 0d 09 09 69 66 20 28 73 | 70 6a 2d 3e 61 63 74 69 |...if (s|pj->acti|
|000047e0| 76 65 20 26 26 09 09 09 | 09 09 09 09 2f 2f 20 41 |ve &&...|....// A|
|000047f0| 63 74 69 76 65 0d 09 09 | 09 2f 2f 20 61 62 73 28 |ctive...|.// abs(|
|00004800| 28 62 50 6f 73 2e 68 20 | 3e 3e 20 35 29 20 2d 20 |(bPos.h |>> 5) - |
|00004810| 28 74 50 6f 73 2e 68 20 | 3e 3e 20 35 29 29 20 3c |(tPos.h |>> 5)) <|
|00004820| 20 32 20 26 26 09 2f 2f | 20 52 61 6e 67 65 20 43 | 2 &&.//| Range C|
|00004830| 68 65 63 6b 0d 09 09 09 | 2f 2f 20 61 62 73 28 28 |heck....|// abs((|
|00004840| 62 50 6f 73 2e 76 20 3e | 3e 20 35 29 20 2d 20 28 |bPos.v >|> 5) - (|
|00004850| 74 50 6f 73 2e 76 20 3e | 3e 20 35 29 29 20 3c 20 |tPos.v >|> 5)) < |
|00004860| 32 20 26 26 09 2f 2f 20 | 52 61 6e 67 65 20 43 68 |2 &&.// |Range Ch|
|00004870| 65 63 6b 0d 09 09 09 62 | 50 6f 73 2e 68 2b 32 20 |eck....b|Pos.h+2 |
|00004880| 3e 20 74 50 6f 73 2e 68 | 20 26 26 09 09 09 09 2f |> tPos.h| &&..../|
|00004890| 2f 20 49 6e 20 52 61 6e | 67 65 0d 09 09 09 62 50 |/ In Ran|ge....bP|
|000048a0| 6f 73 2e 76 2b 32 20 3e | 20 74 50 6f 73 2e 76 20 |os.v+2 >| tPos.v |
|000048b0| 26 26 0d 09 09 09 62 50 | 6f 73 2e 68 20 3c 20 74 |&&....bP|os.h < t|
|000048c0| 50 6f 73 2e 68 2b 33 32 | 20 26 26 0d 09 09 09 62 |Pos.h+32| &&....b|
|000048d0| 50 6f 73 2e 76 20 3c 20 | 74 50 6f 73 2e 76 2b 33 |Pos.v < |tPos.v+3|
|000048e0| 32 20 26 26 0d 09 09 09 | 28 73 70 2d 3e 70 61 72 |2 &&....|(sp->par|
|000048f0| 61 6d 31 20 26 20 28 31 | 4c 20 3c 3c 20 73 70 6a |am1 & (1|L << spj|
|00004900| 2d 3e 74 79 70 65 29 29 | 20 3e 20 30 29 09 09 2f |->type))| > 0)../|
|00004910| 2f 20 56 61 6c 69 64 20 | 54 61 72 67 65 74 0d 09 |/ Valid |Target..|
|00004920| 09 7b 0d 09 09 09 72 65 | 67 69 73 74 65 72 20 50 |.{....re|gister P|
|00004930| 74 72 09 6d 70 3b 0d 09 | 09 09 52 65 63 74 09 09 |tr.mp;..|..Rect..|
|00004940| 09 72 3b 0d 09 09 09 72 | 65 67 69 73 74 65 72 20 |.r;....r|egister |
|00004950| 73 68 6f 72 74 20 79 2c | 78 3b 0d 09 09 09 72 2e |short y,|x;....r.|
|00004960| 6c 65 66 74 20 3d 20 6d | 61 78 28 73 70 2d 3e 70 |left = m|ax(sp->p|
|00004970| 6f 73 2e 68 2c 74 50 6f | 73 2e 68 29 3b 0d 09 09 |os.h,tPo|s.h);...|
|00004980| 09 72 2e 74 6f 70 20 3d | 20 6d 61 78 28 73 70 2d |.r.top =| max(sp-|
|00004990| 3e 70 6f 73 2e 76 2c 74 | 50 6f 73 2e 76 29 3b 0d |>pos.v,t|Pos.v);.|
|000049a0| 09 09 09 72 2e 72 69 67 | 68 74 20 3d 20 6d 69 6e |...r.rig|ht = min|
|000049b0| 28 73 70 2d 3e 70 6f 73 | 2e 68 2b 32 2c 74 50 6f |(sp->pos|.h+2,tPo|
|000049c0| 73 2e 68 2b 33 32 29 3b | 0d 09 09 09 72 2e 62 6f |s.h+32);|....r.bo|
|000049d0| 74 74 6f 6d 20 3d 20 6d | 69 6e 28 73 70 2d 3e 70 |ttom = m|in(sp->p|
|000049e0| 6f 73 2e 76 2b 32 2c 74 | 50 6f 73 2e 76 2b 33 32 |os.v+2,t|Pos.v+32|
|000049f0| 29 3b 0d 09 09 09 6d 70 | 20 3d 20 73 44 65 66 5b |);....mp| = sDef[|
|00004a00| 73 70 6a 2d 3e 74 79 70 | 65 5d 2e 6d 61 73 6b 4d |spj->typ|e].maskM|
|00004a10| 61 70 73 20 2b 20 41 6e | 69 46 72 61 6d 65 49 6e |aps + An|iFrameIn|
|00004a20| 64 65 78 28 73 70 6a 2d | 3e 61 6e 69 53 74 61 74 |dex(spj-|>aniStat|
|00004a30| 65 29 3b 0d 09 09 09 66 | 6f 72 20 28 79 20 3d 20 |e);....f|or (y = |
|00004a40| 72 2e 74 6f 70 3b 20 79 | 20 3c 20 72 2e 62 6f 74 |r.top; y| < r.bot|
|00004a50| 74 6f 6d 3b 20 2b 2b 79 | 29 20 7b 0d 09 09 09 09 |tom; ++y|) {.....|
|00004a60| 66 6f 72 20 28 78 20 3d | 20 72 2e 6c 65 66 74 3b |for (x =| r.left;|
|00004a70| 20 78 20 3c 20 72 2e 72 | 69 67 68 74 3b 20 2b 2b | x < r.r|ight; ++|
|00004a80| 78 29 20 7b 0d 09 09 09 | 09 09 69 66 20 28 21 6d |x) {....|..if (!m|
|00004a90| 70 5b 28 78 20 2d 20 74 | 50 6f 73 2e 68 29 2b 41 |p[(x - t|Pos.h)+A|
|00004aa0| 6e 69 52 6f 77 49 6e 64 | 65 78 28 28 79 20 2d 20 |niRowInd|ex((y - |
|00004ab0| 74 50 6f 73 2e 76 29 29 | 5d 29 09 0d 09 09 09 09 |tPos.v))|])......|
|00004ac0| 09 09 67 6f 74 6f 20 43 | 6f 6c 6c 69 73 69 6f 6e |..goto C|ollision|
|00004ad0| 3b 0d 09 09 09 09 7d 0d | 09 09 09 7d 0d 09 09 7d |;.....}.|...}...}|
|00004ae0| 0d 09 7d 0d 09 72 65 74 | 75 72 6e 3b 0d 0d 43 6f |..}..ret|urn;..Co|
|00004af0| 6c 6c 69 73 69 6f 6e 3a | 0d 09 4b 69 6c 6c 53 70 |llision:|..KillSp|
|00004b00| 72 69 74 65 28 73 70 29 | 3b 09 09 2f 2f 20 4b 69 |rite(sp)|;..// Ki|
|00004b10| 6c 6c 20 42 75 6c 6c 65 | 74 0d 0d 09 73 77 69 74 |ll Bulle|t...swit|
|00004b20| 63 68 20 28 73 70 6a 2d | 3e 74 79 70 65 29 20 7b |ch (spj-|>type) {|
|00004b30| 0d 09 63 61 73 65 20 53 | 54 5f 57 68 65 65 6c 3a |..case S|T_Wheel:|
|00004b40| 0d 09 09 4e 65 77 53 75 | 62 41 73 74 65 72 6f 69 |...NewSu|bAsteroi|
|00004b50| 64 28 6a 2c 53 54 5f 57 | 68 65 65 6c 52 2c 2d 32 |d(j,ST_W|heelR,-2|
|00004b60| 29 3b 0d 09 09 4e 65 77 | 53 75 62 41 73 74 65 72 |);...New|SubAster|
|00004b70| 6f 69 64 28 6a 2c 53 54 | 5f 57 68 65 65 6c 47 2c |oid(j,ST|_WheelG,|
|00004b80| 30 29 3b 0d 09 09 4e 65 | 77 53 75 62 41 73 74 65 |0);...Ne|wSubAste|
|00004b90| 72 6f 69 64 28 6a 2c 53 | 54 5f 57 68 65 65 6c 42 |roid(j,S|T_WheelB|
|00004ba0| 2c 32 29 3b 0d 09 09 2d | 2d 67 41 73 74 65 72 6f |,2);...-|-gAstero|
|00004bb0| 69 64 43 6e 74 3b 0d 09 | 09 4b 69 6c 6c 53 70 72 |idCnt;..|.KillSpr|
|00004bc0| 69 74 65 28 73 70 6a 29 | 3b 0d 09 09 41 64 64 53 |ite(spj)|;...AddS|
|00004bd0| 63 6f 72 65 28 41 73 74 | 65 72 50 6f 69 6e 74 73 |core(Ast|erPoints|
|00004be0| 29 3b 0d 09 09 50 6c 61 | 79 53 6f 75 6e 64 28 53 |);...Pla|ySound(S|
|00004bf0| 5f 43 6f 6d 70 6f 75 6e | 64 46 72 61 63 74 75 72 |_Compoun|dFractur|
|00004c00| 65 2c 20 32 29 3b 0d 09 | 09 62 72 65 61 6b 3b 0d |e, 2);..|.break;.|
|00004c10| 09 63 61 73 65 20 53 54 | 5f 41 73 74 65 72 3a 0d |.case ST|_Aster:.|
|00004c20| 09 09 4e 65 77 53 75 62 | 41 73 74 65 72 6f 69 64 |..NewSub|Asteroid|
|00004c30| 28 6a 2c 53 54 5f 41 73 | 74 65 72 31 2c 2d 32 29 |(j,ST_As|ter1,-2)|
|00004c40| 3b 0d 09 09 4e 65 77 53 | 75 62 41 73 74 65 72 6f |;...NewS|ubAstero|
|00004c50| 69 64 28 6a 2c 53 54 5f | 41 73 74 65 72 32 2c 32 |id(j,ST_|Aster2,2|
|00004c60| 29 3b 0d 09 09 2d 2d 67 | 41 73 74 65 72 6f 69 64 |);...--g|Asteroid|
|00004c70| 43 6e 74 3b 0d 09 09 4b | 69 6c 6c 53 70 72 69 74 |Cnt;...K|illSprit|
|00004c80| 65 28 73 70 6a 29 3b 0d | 09 09 41 64 64 53 63 6f |e(spj);.|..AddSco|
|00004c90| 72 65 28 41 73 74 65 72 | 50 6f 69 6e 74 73 29 3b |re(Aster|Points);|
|00004ca0| 0d 09 09 50 6c 61 79 53 | 6f 75 6e 64 28 53 5f 43 |...PlayS|ound(S_C|
|00004cb0| 6f 6d 70 6f 75 6e 64 46 | 72 61 63 74 75 72 65 2c |ompoundF|racture,|
|00004cc0| 20 32 29 3b 0d 09 09 62 | 72 65 61 6b 3b 0d 09 63 | 2);...b|reak;..c|
|00004cd0| 61 73 65 20 53 54 5f 57 | 68 65 65 6c 52 3a 0d 09 |ase ST_W|heelR:..|
|00004ce0| 63 61 73 65 20 53 54 5f | 57 68 65 65 6c 47 3a 0d |case ST_|WheelG:.|
|00004cf0| 09 63 61 73 65 20 53 54 | 5f 57 68 65 65 6c 42 3a |.case ST|_WheelB:|
|00004d00| 0d 09 63 61 73 65 20 53 | 54 5f 41 73 74 65 72 31 |..case S|T_Aster1|
|00004d10| 3a 0d 09 63 61 73 65 20 | 53 54 5f 41 73 74 65 72 |:..case |ST_Aster|
|00004d20| 32 3a 0d 09 63 61 73 65 | 20 53 54 5f 54 65 61 63 |2:..case| ST_Teac|
|00004d30| 75 70 3a 0d 09 63 61 73 | 65 20 53 54 5f 4a 69 6d |up:..cas|e ST_Jim|
|00004d40| 3a 0d 09 09 2d 2d 67 41 | 73 74 65 72 6f 69 64 43 |:...--gA|steroidC|
|00004d50| 6e 74 3b 0d 09 09 45 78 | 70 6c 6f 64 65 53 70 72 |nt;...Ex|plodeSpr|
|00004d60| 69 74 65 28 73 70 6a 2c | 31 30 29 3b 0d 09 09 41 |ite(spj,|10);...A|
|00004d70| 64 64 53 63 6f 72 65 28 | 41 73 74 65 72 50 6f 69 |ddScore(|AsterPoi|
|00004d80| 6e 74 73 29 3b 0d 09 09 | 62 72 65 61 6b 3b 0d 09 |nts);...|break;..|
|00004d90| 63 61 73 65 20 53 54 5f | 53 61 75 63 65 72 3a 0d |case ST_|Saucer:.|
|00004da0| 09 09 69 66 20 28 2b 2b | 73 70 6a 2d 3e 70 61 72 |..if (++|spj->par|
|00004db0| 61 6d 32 20 3e 3d 20 73 | 70 6a 2d 3e 70 61 72 61 |am2 >= s|pj->para|
|00004dc0| 6d 31 29 09 7b 09 09 2f | 2f 20 4d 61 78 20 48 69 |m1).{../|/ Max Hi|
|00004dd0| 74 73 3f 0d 09 09 09 45 | 78 70 6c 6f 64 65 53 70 |ts?....E|xplodeSp|
|00004de0| 72 69 74 65 28 73 70 6a | 2c 32 30 29 3b 0d 09 09 |rite(spj|,20);...|
|00004df0| 09 41 64 64 53 63 6f 72 | 65 28 53 61 75 63 65 72 |.AddScor|e(Saucer|
|00004e00| 50 6f 69 6e 74 73 29 3b | 0d 09 09 7d 0d 09 09 62 |Points);|...}...b|
|00004e10| 72 65 61 6b 3b 0d 09 63 | 61 73 65 20 53 54 5f 42 |reak;..c|ase ST_B|
|00004e20| 61 72 62 65 6c 6c 3a 0d | 09 09 69 66 20 28 2b 2b |arbell:.|..if (++|
|00004e30| 73 70 6a 2d 3e 70 61 72 | 61 6d 32 20 3e 3d 20 73 |spj->par|am2 >= s|
|00004e40| 70 6a 2d 3e 70 61 72 61 | 6d 31 29 09 7b 09 09 2f |pj->para|m1).{../|
|00004e50| 2f 20 4d 61 78 20 48 69 | 74 73 3f 0d 09 09 09 45 |/ Max Hi|ts?....E|
|00004e60| 78 70 6c 6f 64 65 53 70 | 72 69 74 65 28 73 70 6a |xplodeSp|rite(spj|
|00004e70| 2c 32 30 29 3b 0d 09 09 | 09 41 64 64 53 63 6f 72 |,20);...|.AddScor|
|00004e80| 65 28 42 61 72 62 65 6c | 6c 50 6f 69 6e 74 73 29 |e(Barbel|lPoints)|
|00004e90| 3b 0d 09 09 7d 0d 09 09 | 62 72 65 61 6b 3b 0d 09 |;...}...|break;..|
|00004ea0| 63 61 73 65 20 53 54 5f | 43 75 62 65 3a 0d 09 09 |case ST_|Cube:...|
|00004eb0| 69 66 20 28 2b 2b 73 70 | 6a 2d 3e 70 61 72 61 6d |if (++sp|j->param|
|00004ec0| 32 20 3e 3d 20 73 70 6a | 2d 3e 70 61 72 61 6d 31 |2 >= spj|->param1|
|00004ed0| 29 09 7b 09 09 2f 2f 20 | 4d 61 78 20 48 69 74 73 |).{..// |Max Hits|
|00004ee0| 3f 0d 09 09 09 45 78 70 | 6c 6f 64 65 53 70 72 69 |?....Exp|lodeSpri|
|00004ef0| 74 65 28 73 70 6a 2c 32 | 30 29 3b 0d 09 09 09 41 |te(spj,2|0);....A|
|00004f00| 64 64 53 63 6f 72 65 28 | 43 75 62 65 50 6f 69 6e |ddScore(|CubePoin|
|00004f10| 74 73 29 3b 0d 09 09 7d | 0d 09 09 62 72 65 61 6b |ts);...}|...break|
|00004f20| 3b 0d 09 63 61 73 65 20 | 53 54 5f 54 65 61 70 6f |;..case |ST_Teapo|
|00004f30| 74 3a 0d 09 63 61 73 65 | 20 53 54 5f 54 65 61 70 |t:..case| ST_Teap|
|00004f40| 6f 74 54 3a 0d 09 09 45 | 78 70 6c 6f 64 65 53 70 |otT:...E|xplodeSp|
|00004f50| 72 69 74 65 28 73 70 6a | 2c 33 30 29 3b 0d 09 09 |rite(spj|,30);...|
|00004f60| 4e 65 77 53 68 69 70 28 | 29 3b 0d 09 09 62 72 65 |NewShip(|);...bre|
|00004f70| 61 6b 3b 0d 09 63 61 73 | 65 20 53 54 5f 59 75 6d |ak;..cas|e ST_Yum|
|00004f80| 6d 69 65 73 3a 0d 09 09 | 53 74 61 6e 64 61 72 64 |mies:...|Standard|
|00004f90| 53 70 72 69 74 65 45 72 | 61 73 65 28 73 70 6a 29 |SpriteEr|ase(spj)|
|00004fa0| 3b 0d 09 09 45 78 70 6c | 6f 64 65 53 70 72 69 74 |;...Expl|odeSprit|
|00004fb0| 65 28 73 70 6a 2c 31 30 | 29 3b 09 2f 2f 20 4e 6f |e(spj,10|);.// No|
|00004fc0| 20 50 6f 69 6e 74 73 20 | 66 6f 72 20 45 78 70 6c | Points |for Expl|
|00004fd0| 6f 64 65 64 20 59 75 6d | 6d 69 65 73 0d 09 09 62 |oded Yum|mies...b|
|00004fe0| 72 65 61 6b 3b 0d 09 63 | 61 73 65 20 53 54 5f 54 |reak;..c|ase ST_T|
|00004ff0| 65 61 70 6f 74 53 3a 09 | 2f 2f 20 4e 61 64 61 20 |eapotS:.|// Nada |
|00005000| 2d 20 53 68 69 65 6c 64 | 73 20 61 72 65 20 75 70 |- Shield|s are up|
|00005010| 0d 09 09 50 6c 61 79 53 | 6f 75 6e 64 28 53 5f 44 |...PlayS|ound(S_D|
|00005020| 75 64 42 75 6c 6c 65 74 | 2c 20 32 29 3b 0d 09 09 |udBullet|, 2);...|
|00005030| 62 72 65 61 6b 3b 0d 09 | 7d 0d 7d 0d 0d 76 6f 69 |break;..|}.}..voi|
|00005040| 64 20 59 75 6d 6d 79 4d | 6f 76 65 28 72 65 67 69 |d YummyM|ove(regi|
|00005050| 73 74 65 72 20 53 70 72 | 69 74 65 49 6e 73 74 61 |ster Spr|iteInsta|
|00005060| 6e 63 65 20 2a 73 70 29 | 0d 7b 0d 09 69 66 20 28 |nce *sp)|.{..if (|
|00005070| 2d 2d 73 70 2d 3e 6c 69 | 66 65 53 70 61 6e 20 3d |--sp->li|feSpan =|
|00005080| 3d 20 30 29 20 7b 0d 09 | 09 53 74 61 6e 64 61 72 |= 0) {..|.Standar|
|00005090| 64 53 70 72 69 74 65 45 | 72 61 73 65 28 73 70 29 |dSpriteE|rase(sp)|
|000050a0| 3b 0d 09 09 4b 69 6c 6c | 53 70 72 69 74 65 28 73 |;...Kill|Sprite(s|
|000050b0| 70 29 3b 0d 09 09 2d 2d | 67 59 75 6d 6d 79 43 6e |p);...--|gYummyCn|
|000050c0| 74 3b 0d 09 09 72 65 74 | 75 72 6e 3b 0d 09 7d 0d |t;...ret|urn;..}.|
|000050d0| 7d 0d 0d 0d 76 6f 69 64 | 20 53 70 61 72 6b 4d 6f |}...void| SparkMo|
|000050e0| 76 65 28 72 65 67 69 73 | 74 65 72 20 53 70 72 69 |ve(regis|ter Spri|
|000050f0| 74 65 49 6e 73 74 61 6e | 63 65 20 2a 73 70 29 0d |teInstan|ce *sp).|
|00005100| 7b 0d 09 72 65 67 69 73 | 74 65 72 20 73 68 6f 72 |{..regis|ter shor|
|00005110| 74 20 6a 3b 0d 09 72 65 | 67 69 73 74 65 72 20 53 |t j;..re|gister S|
|00005120| 70 72 69 74 65 49 6e 73 | 74 61 6e 63 65 20 2a 73 |priteIns|tance *s|
|00005130| 70 6a 3b 0d 0d 09 2f 2f | 20 55 70 64 61 74 65 20 |pj;...//| Update |
|00005140| 70 6f 73 69 74 69 6f 6e | 0d 09 73 70 2d 3e 70 6f |position|..sp->po|
|00005150| 73 2e 68 20 2b 3d 20 28 | 73 70 2d 3e 76 65 63 74 |s.h += (|sp->vect|
|00005160| 6f 72 2e 6c 68 20 3e 3e | 20 31 36 29 3b 0d 09 73 |or.lh >>| 16);..s|
|00005170| 70 2d 3e 70 6f 73 2e 76 | 20 2b 3d 20 28 73 70 2d |p->pos.v| += (sp-|
|00005180| 3e 76 65 63 74 6f 72 2e | 6c 76 20 3e 3e 20 31 36 |>vector.|lv >> 16|
|00005190| 29 3b 0d 09 69 66 20 28 | 73 70 2d 3e 70 6f 73 2e |);..if (|sp->pos.|
|000051a0| 68 20 3c 20 67 50 6c 61 | 79 52 65 63 74 2e 6c 65 |h < gPla|yRect.le|
|000051b0| 66 74 29 0d 09 09 73 70 | 2d 3e 70 6f 73 2e 68 20 |ft)...sp|->pos.h |
|000051c0| 2b 3d 20 67 50 6c 61 79 | 57 69 64 74 68 3b 0d 09 |+= gPlay|Width;..|
|000051d0| 69 66 20 28 73 70 2d 3e | 70 6f 73 2e 76 20 3c 20 |if (sp->|pos.v < |
|000051e0| 67 50 6c 61 79 52 65 63 | 74 2e 74 6f 70 29 0d 09 |gPlayRec|t.top)..|
|000051f0| 09 73 70 2d 3e 70 6f 73 | 2e 76 20 2b 3d 20 67 50 |.sp->pos|.v += gP|
|00005200| 6c 61 79 48 65 69 67 68 | 74 3b 0d 09 69 66 20 28 |layHeigh|t;..if (|
|00005210| 73 70 2d 3e 70 6f 73 2e | 68 20 3e 20 67 50 6c 61 |sp->pos.|h > gPla|
|00005220| 79 52 65 63 74 2e 72 69 | 67 68 74 29 0d 09 09 73 |yRect.ri|ght)...s|
|00005230| 70 2d 3e 70 6f 73 2e 68 | 20 2d 3d 20 67 50 6c 61 |p->pos.h| -= gPla|
|00005240| 79 57 69 64 74 68 3b 0d | 09 69 66 20 28 73 70 2d |yWidth;.|.if (sp-|
|00005250| 3e 70 6f 73 2e 76 20 3e | 20 67 50 6c 61 79 52 65 |>pos.v >| gPlayRe|
|00005260| 63 74 2e 62 6f 74 74 6f | 6d 29 0d 09 09 73 70 2d |ct.botto|m)...sp-|
|00005270| 3e 70 6f 73 2e 76 20 2d | 3d 20 67 50 6c 61 79 48 |>pos.v -|= gPlayH|
|00005280| 65 69 67 68 74 3b 0d 0d | 09 2f 2f 20 55 70 64 61 |eight;..|.// Upda|
|00005290| 74 65 20 41 6e 69 6d 61 | 74 69 6f 6e 20 46 72 61 |te Anima|tion Fra|
|000052a0| 6d 65 0d 09 69 66 20 28 | 2d 2d 73 70 2d 3e 6c 69 |me..if (|--sp->li|
|000052b0| 66 65 53 70 61 6e 20 3d | 3d 20 30 29 20 7b 0d 09 |feSpan =|= 0) {..|
|000052c0| 09 2d 2d 67 53 70 61 72 | 6b 43 6e 74 3b 0d 09 09 |.--gSpar|kCnt;...|
|000052d0| 4b 69 6c 6c 53 70 72 69 | 74 65 28 73 70 29 3b 0d |KillSpri|te(sp);.|
|000052e0| 09 09 72 65 74 75 72 6e | 3b 0d 09 7d 0d 7d 0d 0d |..return|;..}.}..|
|000052f0| 2f 2f 20 54 68 69 73 20 | 67 65 74 73 20 73 77 61 |// This |gets swa|
|00005300| 70 70 65 64 20 69 6e 74 | 6f 20 74 68 65 20 73 74 |pped int|o the st|
|00005310| 61 74 75 73 20 73 70 72 | 69 74 65 27 73 20 6d 6f |atus spr|ite's mo|
|00005320| 76 65 20 66 75 6e 63 74 | 69 6f 6e 2c 20 77 68 69 |ve funct|ion, whi|
|00005330| 63 68 20 69 73 0d 2f 2f | 20 6e 6f 72 6d 61 6c 6c |ch is.//| normall|
|00005340| 79 20 6e 75 6c 6c 0d 2f | 2f 20 69 74 20 63 61 75 |y null./|/ it cau|
|00005350| 73 65 73 20 61 20 74 65 | 6d 70 6f 72 61 72 79 20 |ses a te|mporary |
|00005360| 22 73 70 61 63 65 71 75 | 61 6b 65 22 20 6a 69 74 |"spacequ|ake" jit|
|00005370| 74 65 72 20 65 66 66 65 | 63 74 2c 20 70 6f 73 73 |ter effe|ct, poss|
|00005380| 69 62 6c 79 20 63 61 75 | 73 69 6e 67 0d 2f 2f 20 |ibly cau|sing.// |
|00005390| 63 6f 6c 6c 69 73 69 6f | 6e 73 20 77 69 74 68 20 |collisio|ns with |
|000053a0| 6e 65 61 72 62 79 20 6f | 62 6a 65 63 74 73 0d 2f |nearby o|bjects./|
|000053b0| 2f 0d 76 6f 69 64 20 51 | 75 61 6b 65 4d 6f 76 65 |/.void Q|uakeMove|
|000053c0| 28 72 65 67 69 73 74 65 | 72 20 53 70 72 69 74 65 |(registe|r Sprite|
|000053d0| 49 6e 73 74 61 6e 63 65 | 20 2a 73 70 29 0d 7b 0d |Instance| *sp).{.|
|000053e0| 09 72 65 67 69 73 74 65 | 72 20 73 68 6f 72 74 20 |.registe|r short |
|000053f0| 6a 2c 6e 2c 69 3b 0d 09 | 72 65 67 69 73 74 65 72 |j,n,i;..|register|
|00005400| 20 53 70 72 69 74 65 49 | 6e 73 74 61 6e 63 65 20 | SpriteI|nstance |
|00005410| 2a 73 70 6a 3b 0d 09 73 | 74 61 74 69 63 20 63 68 |*spj;..s|tatic ch|
|00005420| 61 72 20 78 4f 66 66 73 | 65 74 5b 5d 20 3d 20 7b |ar xOffs|et[] = {|
|00005430| 2d 32 2c 33 2c 20 30 2c | 2d 34 2c 20 30 2c 2d 31 |-2,3, 0,|-4, 0,-1|
|00005440| 2c 32 2c 32 7d 3b 0d 09 | 73 74 61 74 69 63 20 63 |,2,2};..|static c|
|00005450| 68 61 72 20 79 4f 66 66 | 73 65 74 5b 5d 20 3d 20 |har yOff|set[] = |
|00005460| 7b 2d 34 2c 30 2c 2d 31 | 2c 20 32 2c 2d 32 2c 20 |{-4,0,-1|, 2,-2, |
|00005470| 33 2c 32 2c 30 7d 3b 0d | 09 69 66 20 28 2d 2d 73 |3,2,0};.|.if (--s|
|00005480| 70 2d 3e 70 61 72 61 6d | 32 20 3d 3d 20 30 29 20 |p->param|2 == 0) |
|00005490| 7b 0d 09 09 73 44 65 66 | 5b 53 54 5f 53 74 61 74 |{...sDef|[ST_Stat|
|000054a0| 75 73 44 69 73 70 6c 61 | 79 5d 2e 6d 6f 76 65 46 |usDispla|y].moveF|
|000054b0| 75 6e 63 20 3d 20 4e 75 | 6c 6c 46 75 6e 63 3b 0d |unc = Nu|llFunc;.|
|000054c0| 09 09 72 65 74 75 72 6e | 3b 0d 09 7d 0d 09 6e 20 |..return|;..}..n |
|000054d0| 3d 20 67 4d 61 78 53 70 | 72 69 74 65 3b 0d 09 69 |= gMaxSp|rite;..i|
|000054e0| 20 3d 20 73 70 2d 3e 70 | 61 72 61 6d 32 20 26 20 | = sp->p|aram2 & |
|000054f0| 37 3b 0d 09 66 6f 72 20 | 28 6a 20 3d 20 30 2c 73 |7;..for |(j = 0,s|
|00005500| 70 6a 3d 73 54 61 62 6c | 65 3b 20 6a 20 3c 20 6e |pj=sTabl|e; j < n|
|00005510| 3b 20 2b 2b 6a 2c 2b 2b | 73 70 6a 29 20 7b 0d 09 |; ++j,++|spj) {..|
|00005520| 09 73 70 6a 2d 3e 70 6f | 73 2e 68 20 2b 3d 20 78 |.spj->po|s.h += x|
|00005530| 4f 66 66 73 65 74 5b 69 | 5d 3b 0d 09 09 73 70 6a |Offset[i|];...spj|
|00005540| 2d 3e 70 6f 73 2e 76 20 | 2b 3d 20 79 4f 66 66 73 |->pos.v |+= yOffs|
|00005550| 65 74 5b 69 5d 3b 0d 09 | 09 2b 2b 69 3b 0d 09 09 |et[i];..|.++i;...|
|00005560| 69 20 26 3d 20 37 3b 0d | 09 7d 0d 7d 0d 0d 76 6f |i &= 7;.|.}.}..vo|
|00005570| 69 64 20 4e 75 6c 6c 46 | 75 6e 63 28 72 65 67 69 |id NullF|unc(regi|
|00005580| 73 74 65 72 20 53 70 72 | 69 74 65 49 6e 73 74 61 |ster Spr|iteInsta|
|00005590| 6e 63 65 20 2a 73 70 29 | 0d 7b 0d 7d 0d 0d 0d 00 |nce *sp)|.{.}....|
|000055a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000055b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000055c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000055d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000055e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000055f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005600| 00 00 01 00 00 00 01 4c | 00 00 00 4c 00 00 00 46 |.......L|...L...F|
|00005610| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00005620| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00005630| 09 53 70 72 69 74 65 73 | 2e 63 02 00 00 00 54 45 |.Sprites|.c....TE|
|00005640| 58 54 4b 41 48 4c 01 00 | ff ff ff ff 00 00 00 00 |XTKAHL..|........|
|00005650| 00 00 54 45 58 54 4b 41 | 48 4c 01 00 ff ff ff ff |..TEXTKA|HL......|
|00005660| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005670| 00 00 a2 49 9f 1e 00 00 | 55 1f 00 00 01 92 ff ff |...I....|U.......|
|00005680| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00005690| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|000056a0| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|000056b0| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|000056c0| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff fd fc |........|........|
|000056d0| ff ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|000056e0| ff ff ff ff ff ff ff ff | ff ff e0 ff ff e0 82 82 |........|........|
|000056f0| fd ff ff ff ff ff ff ff | ff ff ff ff ff ff ff ff |........|........|
|00005700| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 00 00 00 |...H..Mo|naco....|
|00005710| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00005720| 00 00 00 00 00 00 00 06 | 00 04 00 3d 00 21 01 db |........|...=.!..|
|00005730| 02 4d 00 3d 00 21 01 db | 02 4d a9 a4 9f d3 00 00 |.M.=.!..|.M......|
|00005740| 38 48 00 00 38 4f 00 00 | 36 34 01 00 00 00 01 00 |8H..8O..|64......|
|00005750| 00 00 01 4c 00 00 00 4c | 00 00 00 46 00 82 06 80 |...L...L|...F....|
|00005760| 16 0a 00 00 00 1c 00 32 | 00 00 4d 50 53 52 00 00 |.......2|..MPSR..|
|00005770| 00 0a 03 ed 00 00 00 00 | 00 00 00 82 04 3c 13 43 |........|.....<.C|
|00005780| 72 65 61 74 65 64 20 62 | 79 20 43 4d 61 73 74 65 |reated b|y CMaste|
|00005790| 72 aa 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |r.......|........|
|000057a0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000057b0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000057c0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000057d0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000057e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000057f0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+